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

Requêtes MySQL Discussion :

Ajouter une colone qui numérote


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien d'exploitation informatique
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien d'exploitation informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut Ajouter une colone qui numérote
    Salut à tous,

    J' aimerais faire un tableau qui classe mes membres selon leurs points avec une colonne (rang)qui détermine la position des membres,
    il faut que les rangs soient les meme pour les membres qui ont les meme points.

    Exemple :

    rang pseudo points1
    ---- ------ -----
    1 azerty 76
    2 nono 43
    2 Furious 43
    3 querty 25
    4 souri 17

    J' ai trouvé un code que j' ai adapté, j'obtient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $reponse = mysql_query('SELECT id, pseudo, points1, 
      IF(points1=@last, @count, @count:=@line) AS rang, 
      @last:=points1, @line:=@line+1
    FROM utilisateur, (SELECT @count:=0, @last:=0, @line:=1) r
    ORDER BY points1 DESC; ');
     
    while ($donnees = mysql_fetch_array($reponse) )
    { [...] }
    Mais ca ne fonctionne pas,

    j' obtient un Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result.

    Pourquoi ?

    Merci d' avance pour vos réponse

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 155
    Par défaut
    Bonjour,

    Pourquoi pas tous simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $reponse = mysql_query('SELECT id, pseudo, points1 FROM utilisateur ORDER BY points1 DESC');

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien d'exploitation informatique
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien d'exploitation informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Je ne veux pas utiliser cela car j' aimerais la colonne rang qui tien compte des execo, je sais je pourais le faire en php, mais j' aimerais egalement mettre la postion du membre dans son profil ce qui serait possible en faisant une sous requete avec mon code.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    La requête que tu as trouvée fonctionne parfaitement sur ma machine .
    Peux-tu ajouter ceci à ton code et nous dire ce que tu obtiens en retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $reponse = mysql_query('SELECT id, pseudo, points1, 
      IF(points1=@last, @count, @count:=@line) AS rang, 
      @last:=points1, @line:=@line+1
    FROM utilisateur, (SELECT @count:=0, @last:=0, @line:=1) r
    ORDER BY points1 DESC; ') or die(mysql_error());
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien d'exploitation informatique
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien d'exploitation informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Merci ! Quel nul je suis, j' ai oublié le S à utilisateurS,

    Ca ne deconne plus, par contre le code à quand meme un bug car apres la suite d' execo je n' est pas le bon nombre qui suit,

    Exemple :

    Rang

    1
    2
    3
    3
    3
    6
    7
    8

    D' ou vient le probleme ?

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Euh, non... La numérotation est au contraire correcte .
    Quand 2 personnes sont ex-aequo au rang 2, alors on ne numérote pas le rang 3 et on passe directement au rang 4. Bref, il n'y a pas de 3ème...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. Ajouter une image qui restera où je la place
    Par lapaixbordel dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 26/05/2015, 17h00
  2. [XL-2007] Ajouter une ligne qui trace les bordures à une macro déjà fonctionnelle
    Par INFINITY100 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/05/2015, 13h37
  3. Réponses: 2
    Dernier message: 15/04/2015, 13h48
  4. ajouter une colonne qui somme toute la ligne
    Par mimene.zaka dans le forum BIRT
    Réponses: 2
    Dernier message: 06/04/2012, 14h32
  5. Ajouter une bouton qui va appeler une macro
    Par funkykid dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/05/2008, 11h12

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