Page 1 sur 1
problème d'affichage
Posté : 31 mai 2007, 10:10
par Z-obaze
Bonjour tout le monde, je débute en php et j'ai des problèmes au niveau de l'affichage.
Donc en gros dans mon script, je me connecter à une base de donnée, je récupére les informations à la suite d'une recherche. Cependant j'ai une table "Chassis" et une autre table "Cartes" et lorsque je fais une recherche sur un chassis, j'ai n fois le chassis qui apparait, et n correspond aux nombre de cartes que le chassis contient.
donc j'aimerais afficher le chassis qu'une seule fois, et afficher les n cartes qui sont dedans.
Et je n'arrive pas a trouver comment masquer les n-1 lignes pour qu'a l'affichage j'ai :
chassis
nomx
cartes
carte1
carte2
carte3
etc...
Merci de votre aide
Posté : 31 mai 2007, 10:16
par Ryle
Tu peux soit le faire en deux requêtes, la première te retournant le "chassis", et la seconde te listant les "cartes" associées à ce "chassis" (avec un WHERE)
L'autre solution consistant à récupérer tes n lignes (chassis - carte1 ; chassis - carte2 ; ... ), et utiliser php pour n'afficher le chassis que lorsque tu lis le premier enregistrement (avec un compteur ou un flag) par exemple :
$cpt = 0;
while ($row = mysql_fetch_assoc(...)) {
if ($cpt==0) {
// affiche le nom du chassis
}
$cpt++; // incrémente le compteur
// affiche le nom de la carte
}
Posté : 31 mai 2007, 10:22
par mere-teresa
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".
Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.
Posté : 31 mai 2007, 10:33
par Z-obaze
Merci de ta réponse Ryle, je vais essayer ça tout de suite.
P.S : j'aime bien ta signature, elle est marrante
Posté : 31 mai 2007, 11:40
par Z-obaze
bon j'ai essayé ce que tu m'as proposé mais j'ai un problème avec mysql_fetch_assoc(), il me met comme erreur :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
et je ne comprends pas pourquoi.
mon code c'est :
$sql = "SELECT *
FROM Chassis, Carte
WHERE Nom LIKE '%{$value}%'";
$result = mysql_query($sql);
$cpt = 0;
while ($row = mysql_fetch_assoc($result)) {
if ($cpt==0) {
// affiche le nom du chassis
}
$cpt++; // incrémente le compteur
// affiche le nom de la carte
}
Donc si quelqu'un peut m'expliquer pourquoi.
Meri d'avance
Posté : 31 mai 2007, 11:42
par Rei Itchido
$result = mysql_query($sql) or die(mysql_error());
Essaye avec ça tu en sauras plus

Une bonne habitude à prendre d'ailleurs...
Posté : 31 mai 2007, 11:48
par Shrell
Euh, attention, je ne sais pas si c'est ce que tu cherches à faire, mais là tu fais une jointure complète... Si tu nous montrais la structure de ta base?