Prise de tête PHP \ MySQL

Prise de tête PHP \ MySQL - PHP - Programmation

Marsh Posté le 02-03-2006 à 18:04:39    

Bonjour,
 
Je suis face à un petit problème pour construire un site PHP (scolaire) qui est une base de donnée de DVD.
 
La consultation se fait soit par :
 
- Titre
- Acteur
- Réalisateur
 
J'en suis au titre. Après avoir récupérer les informations renvoyer par la requète (méthode POST) je les affiches via un tableau. ce tableau comprend (de gauche a droite) titre, la durée, le genre, la jaquette, et les acteurs.
 
C'est la jaquette qui me pose problème. Dans la base j'ai une table DVD comprenant un n° de DVD (n_dvd) et les jaquettes qui correspondent au nom des images. Je n'arrive pas à trouver comment lier un n° de DVD au nom de la jaquette.
 
Idem pour le genre (policier, thriller, SF...), j'ai un n° de genre et un libellé de genre. La requète me renvois le n° de genre dans le tableau, mais comment affiché le nom du genre et pas le n° ?
 
Merci baucoup !  :love:


Message édité par Drwily le 02-03-2006 à 18:23:50
Reply

Marsh Posté le 02-03-2006 à 18:04:39   

Reply

Marsh Posté le 02-03-2006 à 18:09:57    

pas tout compris à ton problème là
 
Mais si tu as 2 tables et que tu veux faire une jointure, regarde du coté de LEFT JOIN.


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 02-03-2006 à 18:21:24    

newneo2001 a écrit :

pas tout compris à ton problème là
 
Mais si tu as 2 tables et que tu veux faire une jointure, regarde du coté de LEFT JOIN.


 
J'ai 5 tables :
 
- acteur : n_acteur, nomA, PrenomA
 
- DVD : n_dvd, titre, duree, jaquette (qui correspond au nom des images),  n_genre, n_real.
 
- genre : n_genre, lib_genre.
 
- joue : #n_acteur, #n_dvd
 
- realisateur : n_real, nomR, PrenomR
 
Par exemple pour le genre, la requete me renvois le n° du genre et nom pas le libellé. Alors que dans mon tableau c'est le libellé que je veux.
 
la procedure d'affichage donne ca :
 
<?php
  include "Connexion_base.php";
 
  $idConnexion=BDD_Connect();
   
  //Requete controlant l'existance
 $requete='select * from dvd where titre="'.$_POST['tit'].'"';
   $jeuResultat=mysql_query($requete,$idConnexion);        //execute la requete
 $ligne=mysql_fetch_row($jeuResultat);

//recupere le resultat

 
if(!$ligne) {                 //s'il n'y a pas de resultat alors affiche
 
echo 'Titre inconue';
}
 
//sinon effectue l'affichage du tableau
 
else {
  $jeuResultat = mysql_query($requete);
 
      //Pour chaque ligne de jeuResultat (pris comme un tableau)
   
    //création du tableau et affichage des en tetes
     echo '<table width="95%" border="1">';
  echo '<tr>';
  echo '<th align="center">Titre</th>';
     echo '<th align="center">Durée</th>';
  echo '<th align="center">Genre</th>';
    echo '<th align="center">Jacquette</th>';
  echo '<th align="center">Acteur</th>';
  echo '</tr>';
   
      while ($ligne = mysql_fetch_array ($jeuResultat)){
  //Construction de la page HTML
    echo '<tr>';
 echo '<td>'.$ligne[1].'</td>';   //titre
 echo '<td>'.$ligne[2].' Min</td>';   //durée
 echo '<td '.$ligne[2].'</td>';  //genre
       echo '<td <a href="/DVDTHEQUE/images/'.$ligne[4].'.jpg" target="page">Jacquette</a><br></td>';  //jaquette qui s'affiche sous forme de lien
       echo '</tr>';
//faire une requète pour obtenir les acteur (page rech-act.php)
}  
      echo '</table>';
 
}
 

 
C'est à peut près ca...


Message édité par Drwily le 02-03-2006 à 18:22:30
Reply

Marsh Posté le 02-03-2006 à 18:27:10    

oui c'est ce que je pensais alors il faut que tu utilises LEFT JOIN.
 
 
$requete='select d.*, g.lib_genre from dvd d LEFT JOIN  genre g ON (g.n_genre = d.genre) where d.titre="'.$_POST['tit'].'"';  
 
Je viens de te faire la requête rapidmeent de tête il faudra p.ê que tu la reprennes mais au moins tu sais ce que tu dois utiliser.
 
++


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 02-03-2006 à 18:33:53    

Ok merci  :jap:  j'essaye ca. Pour la jacquette j'ai trouvé, c'était ca :
 
echo '<td <a href="images/'.$ligne[3].'.jpg" target="page">Jacquette</a><br></td>';

Reply

Marsh Posté le 02-03-2006 à 18:36:47    

Drwily a écrit :

Ok merci  :jap:  j'essaye ca. Pour la jacquette j'ai trouvé, c'était ca :
 
echo '<td <a href="images/'.$ligne[3].'.jpg" target="page">Jacquette</a><br></td>';


 
Sinon j'avais pensé à ca :
 
SELECT n_dvd, titre, duree, jaquette, lib_genre FROM dvd, genre WHERE dvd.n_genre=genre.n_genre AND titre LIKE "'$var%'"

Reply

Marsh Posté le 02-03-2006 à 18:37:21    

Sinon j'avais pensé à ca :
 
SELECT n_dvd, titre, duree, jaquette, lib_genre FROM dvd, genre WHERE dvd.n_genre=genre.n_genre AND titre LIKE "'$var%'"

Reply

Marsh Posté le 02-03-2006 à 18:38:06    

euh y'a des trucs qui vont pas dans ta source. Comme par exemple tu balances 2 x la même requete
 

Code :
  1. $jeuResultat=mysql_query($requete,$idConnexion);        //execute la requete
  2. $ligne=mysql_fetch_row($jeuResultat); //pas besoin de ça
  3. if (mysql_num_rows($jeuResultat) < 1)
  4. echo 'titre inconnu';
  5. else
  6. while ($ligne = mysql_fetch_array ($jeuResultat)){
  7. echo $ligne['jaquette'];
  8. }


 
si tu fais un fetch_array autant que ca te serve.


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 02-03-2006 à 18:59:23    

Oui, ca fonctionne comme ca, merci ! mais je ne vois pas ou placer la requète pour associer le n° de genre au libellé et l'affiché dans le tableau.


Message édité par Drwily le 02-03-2006 à 18:59:37
Reply

Marsh Posté le 02-03-2006 à 19:01:44    

ben ta requete c'est la même sauf que en plus dans ton retour tu auras maintenant une variable
 
$ligne['lib_genre']
 
qui correspondrant au libellé recup dans l'autre table SQL


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 02-03-2006 à 19:01:44   

Reply

Marsh Posté le 02-03-2006 à 19:33:10    

pour ta requète il me met : Champ 'd.genre' inconnu dans on clause"
 
Ca ce n'est pas grave, c'est en fait qu'il me renvois "null" dans lib_genre
 
----
 
C'est bon c'est résolu !!! Merci baucoup ! en fait ca donnais ça :
 
$requete='SELECT n_dvd, titre, duree, jaquette, lib_genre FROM dvd, genre WHERE dvd.n_genre=genre.n_genre AND titre LIKE"'.$_POST['tit'].'"';
 
Me reste plus que les acteurs...


Message édité par Drwily le 02-03-2006 à 19:53:08
Reply

Marsh Posté le 15-03-2006 à 14:54:26    

C'est encore moi  :pt1cable:  
 
Je voudrais connaitre la syntaxe d'un FOR récupéré d'une variable $_POST. Toujours sur le même projet.
 
Cette variable contient un chiffre qui servira pour le FOR. Le FOR quand a lui sert pour construire une liste de menu déroulant.
 
Commet faire ?


Message édité par Drwily le 15-03-2006 à 15:04:51
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed