Group By afficher juste un seul type en titre

Mammouth du PHP | 620 Messages

23 mars 2017, 15:12

Bonjour,
j'ai un requet sql ou j'utilise un group by pour grouper mes type.

Code : Tout sélectionner

$requete = mysql_query("SELECT DISTINCT type, photo, nom, description FROM monequipe ORDER BY type"); while( $result = mysql_fetch_array( $requete ) ) { echo stripslashes($result['type']); echo stripslashes($result['photo']); echo stripslashes($result['nom']); echo stripslashes($result['description']); }
au lieu d'avoir le type qui se répète à chaque boucle je voudrait que mon type soit utilisé comme titre
type
nom1 description1
nom2 description2

type2
nom3 description3
nom4 description4
....
Comment dois-je écrire mon code pour que mon type ne se répète pas ?

Mammouth du PHP | 2703 Messages

23 mars 2017, 17:58

le principe :

$oldtype="";
while(...){
$type = ...;
if($oldtype != $type){
echo $type;
$oldtype=$type;
}
...
}

Mammouth du PHP | 571 Messages

23 mars 2017, 18:06

bonjour,
tu sauvegardes une seule fois le type dans une variable temporaire qui sera écrasée toute les fois où un type nouveau est rencontré.
$requete = mysql_query("SELECT DISTINCT type, photo, nom, description FROM monequipe ORDER BY type"); 
    $typePrecedent =null;
    while( $result = mysql_fetch_array( $requete ) )
    {
        if( $typePrecedent != $result['type'] )
        {
            $typePrecedent = $result['type'];
        }
        echo $typePrecedent;
        echo stripslashes($result['photo']);
        echo stripslashes($result['nom']);
        echo stripslashes($result['description']);
    }
Penses à utiliser la fonction mysql_escape_string() à la place de addslashes() et htmlspecialchars à la place de stripslashes.