IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Composition d'équipe : trier suivant le champ nom et le champ poste


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut Composition d'équipe : trier suivant le champ nom et le champ poste
    Bonjour,

    Sur une requête, je fais afficher un effectif de joueur, que je trie par nom de A->Z.

    Ce que je voudrais, c'est pouvoir continuer à faire ce trie par nom mais également en mettant l'ordre des postes. Voici un petit schéma...

    Coupet Grégory - Gardien -
    Landreau Mickaël - Gardien -
    Abidal Eric - Défenseur -
    Thuram Lilian - Défenseur -
    Nasri Samir - Milieu
    Ribéry Franck - Milieu
    Anelka Nicolas - Attaquant
    Henry Thierry - Attaquant

    Pour l'instant j'ai ce code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql->DatabaseConnexion();
    $aff_effectif = $sql->query("SELECT * FROM "._TCARR_." AS c, "._TJOU_." AS j WHERE c.id_joueur=j.id_joueur AND equipe='xxx' ORDER BY nom");
    $sql->DatabaseClose();
     
    while($results = mysql_fetch_array($aff_effectif,MYSQL_ASSOC)) {
     
    	$tpl->assign_block_vars('effectif', array(
    					'ID_JOUEUR' => $results['nom'],
    					'PRENOM' => $results['prenom'],
    					'POSTE' => $results['poste'],
    					'LINK01' => $results['id_joueur'],
    					));
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!-- BEGIN effectif -->
     
              <tr>
     
                <td><a href="joueur.php?id={effectif.LINK01}"> {effectif.ID_JOUEUR} {effectif.PRENOM}</a></td>
     
                <td>{effectif.POSTE}</td>
     
    	  </tr>
     
              <!-- END effectif -->

    J'ai déjà vu ce genre d'affichage donc ça doit être possible, mais par contre, je ne sais pas du tout comment aborder la chose...

  2. #2
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut re
    Il te suffit de rajouter un criteres de tri dans le order by de ta requete.

    Avec la fonction ORDER BY poste desc, nom asc

    Cependant la ca n'effectue qu'un tri alphabetique.

    Pour ton cas tu as deux solutions :

    Tu créer un tableau ou tu rentre les postes ( gardien, etc..) dans l'ordre puis tu fait une boucle qui parcoure ce tableau, et qui effectue une requete selon le poste avec un where poste = $tab[$i]

    Tu remplace ton champ poste par un champ numérique ( 1,2,3,4), puis tu crée une table poste ( ID_POSTE, LIBELLE_POSTE) ou tu fait la correspondance 1=gardien; 2=defense, etc...

    Dans ce cas la tu peu garder ton code, tu dois juste modifier ta requete, en effectuant un tri sur le numero de poste, et une jointure JOUEUR->POSTE


    Pour ma part je pense que a deuxieme solution est la plus propre, mais apres c'est toi qui voit, avec laquelle tu te sens plus a l'aise.

    Si tu as des questions ou rencontre des problemes hésite pas.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut
    Citation Envoyé par juliens9 Voir le message
    Il te suffit de rajouter un criteres de tri dans le order by de ta requete.

    Avec la fonction ORDER BY poste desc, nom asc

    Cependant la ca n'effectue qu'un tri alphabetique.

    Pour ton cas tu as deux solutions :

    Tu créer un tableau ou tu rentre les postes ( gardien, etc..) dans l'ordre puis tu fait une boucle qui parcoure ce tableau, et qui effectue une requete selon le poste avec un where poste = $tab[$i]

    Tu remplace ton champ poste par un champ numérique ( 1,2,3,4), puis tu crée une table poste ( ID_POSTE, LIBELLE_POSTE) ou tu fait la correspondance 1=gardien; 2=defense, etc...

    Dans ce cas la tu peu garder ton code, tu dois juste modifier ta requete, en effectuant un tri sur le numero de poste, et une jointure JOUEUR->POSTE


    Pour ma part je pense que a deuxieme solution est la plus propre, mais apres c'est toi qui voit, avec laquelle tu te sens plus a l'aise.

    Si tu as des questions ou rencontre des problemes hésite pas.
    Merci pour ta réponse!

    Même si j'avoue que je n'ai pas tout compris... je vais essayé de voir ce qui est possible de faire!

    Merci!

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Pour reprendre ce que disait Julien :

    Table joueur :

    id_joueur, nom joueur, id_poste, lien

    Remplie :
    1 - Toulalan - 4 - fiche_Toulalan.html

    Et dans la table poste :

    id_poste, nom_poste

    Remplie :
    1 - Gardien
    2 - Defenseur Centrale
    3 - Defenseur Lateral
    4 - Milieu Recuperateur

  5. #5
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut
    Oui, voila et puis dans ta requete tu rajoute une jointure avec un JOIN poste ON joueurs.id_poste = poste.id_poste

Discussions similaires

  1. Créer un fichier suivant le nom d'un champs text
    Par Misoss dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/08/2008, 17h19
  2. Accéder au nom d'un champ d'une table
    Par James64 dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/10/2004, 12h13
  3. Modification du nom d'un champ dans une table
    Par reef1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/06/2004, 10h55
  4. [struts]Nom d'un champ
    Par GreenJay dans le forum Struts 1
    Réponses: 4
    Dernier message: 03/06/2004, 16h50
  5. taille max du nom d'un champ
    Par hna dans le forum Paradox
    Réponses: 2
    Dernier message: 28/07/2002, 02h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo