2011-11-08 7 views
0
mysql_select_db($database_test2, $test2); 
$query_Recordset1 = "Select color.name As color, item.name As Item, typ.name As Typ, color.id From color Inner Join item On color.id = item.color_id Inner Join typ On typ.id = item.typ_id Group By item.name, typ.name, color.id Order By color.id, typ.name, item.name"; 
$Recordset1 = mysql_query($query_Recordset1, $test2) or die(mysql_error()); 
$row_Recordset1 = mysql_fetch_assoc($Recordset1); 
$totalRows_Recordset1 = mysql_num_rows($Recordset1); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<p><?php echo $row_Recordset1['color']; ?> 
</p> 
<p><?php echo $row_Recordset1['Typ']; ?></p> 
<?php do { ?> 
    <p><?php echo $row_Recordset1['Item']; ?></p> 
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> 
</body> 
</html> 
<?php 
mysql_free_result($Recordset1); 
?> 

i utilisé le code ci-dessus et donne cette sortie qui est pas ce que je veux avoirmontrant la catégorie et sous catégories php et mysql

vert

métal

article 1

article 2

article 3

article 4

article 5

article 6

je voudrais avoir ce type de

vert

métal

.item 1

bois

.item 2

yelow

métal

.item3

bois

.item 4

rouge

métal

.item5

bois

.item 6

quelqu'un peut-il être bon pour me aider

Thanx beaucoup

Répondre

1

Dans votre do ... while vous imprimez seulement l'article. Avez-vous une raison d'utiliser do..while au lieu de while loop?

Cela devrait fonctionner:

<body> 
<?php while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) { ?> 
    <p><?php echo $row_Recordset1['color']; ?></p> 
    <p><?php echo $row_Recordset1['Typ']; ?></p> 
    <p><?php echo $row_Recordset1['Item']; ?></p> 
    <?php } ?> 
</body> 

Et vous aurez également pour enlever la première mysql_fetch_assoc, qui est avant mysql_num_rows.

EDIT: Désolé les exigences n'étaient pas claires lorsque le texte était tout en une ligne. Puisque vous obtenez les lignes commandé par la couleur, vous pouvez produire une couleur que si elle est différente de la précédente:

<body> 
<?php 
$color = ''; 
while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) { 
    if ($color != $row_Recordset1[ 'color' ];) { 
     ?><p><?php echo $row_Recordset1['color']; ?></p><?php 
     $color = $row_Recordset1[ 'color' ]; 
    } 
    ?><p><?php echo $row_Recordset1['Typ']; ?></p> 
    <p><?php echo $row_Recordset1['Item']; ?></p> 
    <?php } ?> 
</body> 
+0

utilisant le code ci-dessus, il répète la valeur de couleur comme le vert métal article 1 vert bois article 2 – user1036077

+0

Je n'ai pas remarqué quand vous l'aviez sur une ligne. édité. – abresas

+0

S'il vous plaît aider avec le code ci-dessus la sortie doit inclure le code lui-même – user1036077

Questions connexes