2009-09-07 6 views
0

J'ai une table qui ressemble à:affichage MySQL resultset par groupe

Client_ID | Order_ID | 
10  | 1  | 
10  | 2  | 
10  | 3  | 
14  | 6  | 
14  | 7  | 
14  | 9  | 

Y at-il une façon élégante en PHP d'imprimer ce jeu de résultats mettant en évidence les groupes client_id au lieu de faire une boucle qui se souvient de la précédent Client_ID et vérifie s'il a changé.

client 10:

  • Classement 1
  • Classement 2
  • Classement 3

client 14:

  • Commander 6
  • Commander 7
  • Commander 9

Répondre

2

Tout SQL peut faire est de capturer une série de lignes qui maintiennent aucune relation d'une rangée à l'autre. Il est à PHP d'imposer une certaine structure à ces résultats avec une boucle probablement comme ce que vous avez envisagé:

$last_client_id = null; 
while($row = mysql_fetch_assoc($results)) { 
    if ($row['client_id'] != $last_client_id) { 
     // Do whatever it is you do for each new client 
    } 
    // Do whatever it is you do for each order 
    $last_client_id = $row['client_id']; 
} 
+0

Ok, je m'y attendais. Merci. –

1

courte: Non

long: Comment, sinon l'itération précédente sais que vient une nouvelle id? Il doit y avoir une sorte de traitement de cas ici, ce ne sera pas possible sans.