Classer un résultat par catégorie !

Répondre
doudi
le 14/02/2010 à 17:13
doudi
Salut,

J'aimerais afficher une liste de joueurs mais par poste ! Pour l'instant j'arrive à afficher la liste des joueurs comme ça :

Gardien => Bosmel Thomas
Gardien => Perquis Damien
Gardien => Thébaux Alexis
Défenseur => Barzola Pablo
Défenseur => Heurtaux Thomas
Défenseur => Inez Romain
Défenseur => Leca Grégory

Mais moi j'aimerais afficher le résultat en classant par type de poste (gardien, défenseur, milieu, attaquant) de cette façon :

Gardiens
Bosmel Thomas
Perquis Damien
Thébaux Alexis

Défenseurs
Barzola Pablo
Heurtaux Thomas
Inez Romain
Leca Grégory

J'ai un tableau php des postes :

$poste = array(1 =>'Gardiens','Défenseurs','Milieux','Attaquants');

Ma requête sql :

$req = mysql_query("SELECT effectif.idjoueur,effectif.num,effectif.nom,effectif.prenom,effectif.arrivee,effectif.poste,saisons.idsaison,saisons.nom AS saison
FROM effectif,saisons,saisons_joueurs
WHERE effectif.idjoueur = saisons_joueurs.idjoueur AND saisons_joueurs.idsaison = saisons.idsaison AND saisons.idsaison = '".(int)$_GET['idsaison']."' ORDER BY effectif.poste,effectif.nom");

$last_post='';

while($row = mysql_fetch_array($req))
{
if($last_post!=$row['poste']){
$categorie = $poste{$row['poste']}.'<br />'; // ajout ligne nom catégorie
}
else {
$categorie = '<br />'; // sinon rien
}
echo $categorie;
echo ' => '.$row['nom'].' '.$row['prenom'].'<br />';

}
doudi
le 14/02/2010 à 17:19
doudi
dans la table "effectif" il y a le champ "poste" du joueur :

poste 1 = gardien
poste 2 = défenseur
poste 3 = milieu
poste 4 = attaquant

A chaque passage dans la boucle il faut vérifier si le poste a changé par rapport à la ligne d'avant et si c'est le cas il faut créer une ligne du nom du poste sinon rien. Facile à dire mais dans la pratique... :-x
LA GLOBULE
le 15/02/2010 à 10:56
LA GLOBULE
Tu étais bien parti avec ton code.

Il faut juste modifier la valeur de $last_post en lui donnant la valeur de $row['poste'] lorsque que ces deux valeurs sont différentes.
doudi
le 15/02/2010 à 12:56
doudi
oua j'ai réussi merci la globule smiley

$last_post='';

while($row = mysql_fetch_array($req))
{
if($row['poste']!=$last_post){
$cat = '<font color="red">'.$poste{$row['poste']}.'</font><br />'; // ajout ligne nom catégorie
$last_post = $row['poste'];
}
else {
$cat = ''; // sinon rien
}
echo $cat;
echo ' => '.$row['nom'].$row['prenom'].'<br />';


c'était tout bête ! j'ai honte d'avoir demandé pour ça smiley
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours