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 :

[SQL] Trouver l'ordre d'un résultat


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Par défaut [SQL] Trouver l'ordre d'un résultat
    Bonjour tout le monde !
    J'ai actuellement une requete de ce type que j'execute avec MySQL dans un script php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idmembre, point FROM matable ORDER BY point DESC
    Cette requete me ressors plus de 500 résultats classés dans l'odre décroissant.
    --> le premier resultat sort l'idmembre qui à le plus de points , c'est le premier membre
    --> le 10eme resultat indique que le membre X est 10eme etc..

    J'aimerai savoir comment faire pour trouver la position de l'idmembre Y et celle du premier en utilisant si possible le moins de ressource.

    Merci d'avance !

  2. #2
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    salut,
    je ne suis pas sûr d'avoir bien saisi ce que tu veux. Voilà ce que j'ai compris:
    comment faire pour trouver la position de l'idmembre Y
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idmembre, point FROM matable WHERE idmembre="$idmenbreY"
    celle du premier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idmembre, point FROM matable ORDER BY point DESC LIMIT 1

  3. #3
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par julien.63 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idmembre, point FROM matable WHERE idmembre="$idmenbreY"
    Ceci ne te donnera pas la position dans le classement de $idmenbreY

  4. #4
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    Ceci ne te donnera pas la position dans le classement de $idmenbreY
    oui c'est vrai, j'ai mal lu...

  5. #5
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT( * ) + 1 as rang
    FROM matable  t1
    INNER JOIN matable  t2
    ON t2.idmembre = '$idMembre'
    WHERE t1.point > t2.point

  6. #6
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Citation Envoyé par Gats Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT( * ) + 1 as rang
    FROM matable  t1
    INNER JOIN matable  t2
    ON t2.idmembre = '$idMembre'
    WHERE t1.point > t2.point
    Alors là je dis respect man propre et net et ça marche
    J'ai bien essayé de trouver une solution, mais la tienne est super clean.

  7. #7
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Ca dépends, tu veux économiser tes ressources php ou MySQL?

    A mon avis il vaut mieux faire faire ce boulot au srv MySQL.
    Je réflichis à ton truc et si j'ai la solution je te dépose le résultat de mes réflexions.

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/07/2006, 16h09
  2. [PL/SQL] Trouver un emplacement libre!
    Par Tuizi dans le forum Oracle
    Réponses: 16
    Dernier message: 09/06/2006, 17h36
  3. Réponses: 3
    Dernier message: 24/11/2005, 09h44
  4. PL/SQL TROUVER DATES DE PÂQUES, ASCENSION et PENTECôTE
    Par mimi_été dans le forum PL/SQL
    Réponses: 4
    Dernier message: 21/10/2004, 15h40
  5. Réponses: 8
    Dernier message: 05/05/2004, 12h30

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