2010-04-04 15 views
2

J'essaie de regrouper les enregistrements selon leurs niveaux de priorité, par ex.Regroupement des enregistrements de la boucle while | PHP

--- Priorité: ---

enregistrements ...

--- Priorité: Moyenne ---

records ..

--- Priorité: faible ---

enregistrements ...

Quelque chose comme ça, comment puis-je le faire en PHP? La boucle while ordonne les enregistrements par la colonne de priorité qui a la valeur int (high = 3, medium = 2, low = 1). par exemple. où '1' priorité =

L'étiquette: "Priorité: [niveau de priorité]" doit être placé au-dessus des enregistrements regroupés en ce qui concerne leur niveau

EDIT:

<?php 

while($row = mysql_fetch_array($result)) 
{ 
    echo '<h1>Priority Level: ' . $row['priority'] . '</h1>'; 
    echo $row['name']; 
} 

?> 

Comme ce morceau de code - les étiquettes

est l'étiquette qui sépare les enregistrements concernant leur niveau de priorité.

Répondre

2

Si vous êtes sûr que les résultats sont triés par priorité alors quelque chose d'aussi trivial que cela:

$priority = null; 
while($row = mysql_fetch_array($result)) 
{ 
    if($row['priority'] != $priority) 
    { 
     echo '<h1>Priority Level: ' . $row['priority'] . '</h1>'; 
     $priority = $row['priority']; 
    } 
    echo $row['name']; 
} 

En d'autres termes, vous garder une trace du niveau de priorité actuelle dans la variable $priority. Ensuite, testez si la priorité a changé dans la condition if. Si c'est le cas, echo la priorité et définissez la priorité actuelle à la priorité trouvée dans la ligne en cours.

Rappelez-vous, cela ne fonctionne que comme prévu (vraiment regroupé une fois) si les lignes sont classés par priorité. En d'autres termes, lorsque différentes priorités ne sont pas dispersées dans le jeu de résultats.

+0

Solution acceptée, merci :) – MacMac

+0

Ah .. ça ne marche pas du tout, mais ça "groupe" les disques mais ça donne juste une étiquette à chaque enregistrement et non à une étiquette par groupe. – MacMac

+0

Êtes-vous sûr que le jeu de résultats est trié par ordre de priorité? Pouvez-vous éditer votre question et montrer la requête SQL là-dedans? –

0

Si vous utilisez mysql, pourquoi n'utiliseriez-vous pas les capacités de commande de BD?

SELECT * 
FROM items 
ORDER BY priority DESC 
+0

Pas la requête ... Je l'ai déjà commandé par lui, je pose des questions sur le PHP qui sépare les enregistrements. - édité le post btw – MacMac