Prise de tête PHP \ MySQL - PHP - Programmation
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.
Marsh Posté le 02-03-2006 à 18:21:24
newneo2001 a écrit : pas tout compris à ton problème là |
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...
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.
++
Marsh Posté le 02-03-2006 à 18:33:53
Ok merci 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>';
Marsh Posté le 02-03-2006 à 18:36:47
Drwily a écrit : Ok merci j'essaye ca. Pour la jacquette j'ai trouvé, c'était ca : |
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%'"
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%'"
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 :
|
si tu fais un fetch_array autant que ca te serve.
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.
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
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...
Marsh Posté le 15-03-2006 à 14:54:26
C'est encore moi
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 ?
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 !
Message édité par Drwily le 02-03-2006 à 18:23:50