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?