| | rosen37 | Posté le 15/04/2004 @ 03:05 | Petit astucien
140 Messages
| Bonjour tt le monde,
Autant le dire tt de suite je suis pas une bete en php.
Voila j aimerais faire une dvdtheque en php.
J ai créé une table dvdt avec : titre, realisateur,...,acteur
J ai créé une table acteur avec titre, acteur1,acteur2,acteur3...
Sur la premiere page je liste les dvds avec comme information le dvdt.titre, dvdt.realisateur,...et j aimerais mettre acteur.acteur1 qui correspondrait a l acteur principale.
Le prob c est que j ai 2 fois chaque film affiche j ai un prob dans mes boucles while je pense. Si qq a des meilleurs idees je suis ouvert.(je pense que ce que j ai fait c est de la m.....
<?
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on séléctionne la base
mysql_select_db('dvd',$db);
// on créer la requete SQL et on l'envoie
$sql = 'SELECT titre,cinemascope,titreo,editeur,zone,realisateur FROM dvdt ORDER BY titre';
// on envoie la requete
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrements
echo "<table border=1 bordercolor=#000000 > ";
echo "<tr> <th>Titre</th> <th>Cinemascope</th> <th>Titre Orig.</th> <th>Acteur Principal</th> <th>Editeur</th> <th>Zone</th> <th>Realisateur</th></tr>";
while($data = mysql_fetch_array($req))
{
// on ajoute l acteur principale
$sql1 = 'SELECT acteur FROM dvdt,acteur WHERE dvdt.titre=acteur.titre';
$req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
while($data1 = mysql_fetch_array($req1))
{
// on affiche les informations de l'enregistrements en cours
echo '<tr><TD><A HREF="page2.php">'.$data['titre'].'</A></td><td>'.$data['cinemascope'].'</td><td> '.$data['titreo'].' </td><td>'.$data1['acteur'].' </td><td>'.$data['editeur'].' </td><td>'.$data['zone']. ' </td><td>' .$data['realisateur']. '</TD></tr>';
}
}
echo "</table>";
mysql_free_result ($req);
// on ferme la connexion à mysql
mysql_close();
?>
Merci pour votre aide
| | |
| |
| Publicité |
|
| | Fab2k | Posté le 15/04/2004 à 12:28 | Petit astucien
302 Messages
| Salut Rosen37,
Je ne suis pas un pro non plus, mais à ta place j'essaierai de ne faire qu'une requete avec jointure de table du style:
SELECT dvdt.*, acteurt.* WHERE dvdt.titre = acteurt.titre ORDER BY dvdt.titre
Pour que tu n'ais pas de répition du titre si il y a plus d'un acteur il faut faire une rupture au niveau du titre c'est à dire tester à chaque enreg si le titre à changer, si le titre à changer alors on rempli la case du tableau sinon on ne la rempli pas:
$flag = 0;
while($data = mysql_fetch_array($req))
if ($falg == 0){ // test si 1er tour
$titrerupture = $data["dvdt.titre"]; // sauve le premier titre
$flag = 1; // le premier tour est passé
echo ... //la premiere ligne
else{
if ($data["dvdt.titre"] == $titrerupture){
echo de la ligne sans le titre
else{
echo de la ligne avec titre
$titrerupture = $data["dvdt.titre"]; // nouvelle rupture
}
}
}
Je précise que je n'ai pas pu testé ce bout de script donc gare à la syntaxe et puis c'est une facon de faire il y en a surement d'autre ...
@+
| | | | | rosen37 | Posté le 15/04/2004 à 23:17 | Petit astucien
140 Messages
| Merci pour ta reponse je vais essayer de reflechir cet nuit pour trouver la meilleur solution possible.
Bye | | | | | chab | Posté le 16/04/2004 à 11:45 | Petit astucien
12 Messages
| salut mec ! , au cas ou tu chercherais pas des dvd pas cher ? | | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|