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 :

Numéro du rang d'un enregistrement [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Points : 203
    Points
    203
    Par défaut Numéro du rang d'un enregistrement
    Bonjour,

    Je souhaiterai avoir le numéro du rang d'un enreg....

    En clair, j'ai une liste de maison dans une table, je classe la liste par ordre alpha sur le nom des maisons.
    Seules 3 maisons ont un champ "coup_coeur" à 1 dans ma table Tbl_maison.
    Comment savoir que la maison XX est en huitième position dans ma table
    la maison XY est en 15eme position dans ma table
    la maison XZ est en 75eme position dans ma table ????

    Merci !
    VrroOOOAAAAAPPPPPPPPPP !!!

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Le mieux est d'ajouter un champ Id qui sera auto_incrémenté a chaque insertion dans ta table (peut etre existe-t-il déjà?).

    Ensuite dans ta requete, quand tu récupères le nom de la maison, ajoutes aussi la colonne Id pour pouvoir connaitre le "rang" de chaque résultat meme après un tri.

  3. #3
    Membre actif
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Points : 203
    Points
    203
    Par défaut
    Non, cela ne peut pas marcher puisque je classe les maisons par nom...

    exemple j'entre les maisons :
    1 : Villa A
    2 : villa Z
    3 : villa R

    En classant par nom :
    1 : Villa A
    3 : villa R
    2 : villa Z

    le rang de A est 1, R est 2 et Z 3.... Avec l'id 1 3 2....
    Pas bon....

    Je pense qu'il doit y avoir une formule qui permet de donner le rang, la place, d'un enreg dans une requête, c'est cette formule que je cherche....

    Pour m'en sortir j'ai fais un compteur, mais c'est énormément demandeur de ressource serveur....

    Si quelqu'un a mieux....
    VrroOOOAAAAAPPPPPPPPPP !!!

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Ah j'ai compris ! Désolé j'avais compris de travers avant.

    Quand tu récupères tes résultats villa apres villa, tu peux directement leur associer un identifiant comme ca tu es tranquille. Tu stockes dans un tableau tes villas, comme ca tu sais que la premiere (indice 0 dans le tableau) est au rang 1, la seconde est au rang 2 etc.

    Où est le probleme de ressource coté serveur?

  5. #5
    Membre actif
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Points : 203
    Points
    203
    Par défaut
    Quand tu récupères tes résultats villa apres villa, tu peux directement leur associer un identifiant
    Oui, mais tu fais cela comment ????
    VrroOOOAAAAAPPPPPPPPPP !!!

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Quelquechose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    // cree un tableau vide
    $vVillaArray = array();
    while ($vResult = mysql_fetch_assoc)
       {
       // ajoute la nouvelle villa au tableau
       $vVillaArray[] = $vResult['NomVilla'];
       }
     
    // Maintenant tu sais que la villa A premiere de ta liste est dans
    // $vVillaArray[0] ou que villa Z 3e de ta liste est dans $vVillaArray[2]
    ?>

  7. #7
    Membre actif
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Points : 203
    Points
    203
    Par défaut
    Aïe.... Pas tout compris, je ne connais pas bien la manipulation des tableaux...

    Si je tente de comprendre...

    Je fais ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = 'SELECT * FROM Tbl_villas order by Nom_Villa'; 
    // j'envoie la requête
    $req = mysql_query($sql) or die('Erreur '.mysql_error());
    Mais je ne vois pas comment créer le lien avec ton code...
    Et enfin, je ne vois pas comment exploiter le num du rang.
    Dans qu'elle variable le rang sera mis, si par exemple j'ai 15 maisons mais que 3 sont selectionnées (coup_coeur = 1) ???

    Merci pour ton aide précieuse....
    VrroOOOAAAAAPPPPPPPPPP !!!

  8. #8
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Ajoute mon code au tien comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $sql = 'SELECT * FROM Tbl_villas order by Nom_Villa'; 
    // j'envoie la requête
    $req = mysql_query($sql) or die('Erreur '.mysql_error());
     
    // cree un tableau vide
    $vVillaArray = array();
    while ($vResult = mysql_fetch_assoc($req) )
       {
       // ajoute la nouvelle villa au tableau
       $vVillaArray[] = $vResult;
       }
     
    // Maintenant tu sais que la villa A premiere de ta liste est dans
    // $vVillaArray[0] ou que villa Z 3e de ta liste est dans $vVillaArray[2]
    Maintenant, apres mon code tu as un tableau qui contient la liste de tes résultats si tu fais qqch comme ca tu comprendras peut etre mieux (à ajouter apres le code précédent)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // récupère le nombre de villas
    $nbVillas = count($vVillaArray);
     
    // On va afficher les villas une par une depuis le tableau
    for($i = 0; $i< $nbVillas; $i++)
       {
       // Recuperes le nom de la villa courante :
       $nom = $vVillaArray[$i]['Nom_Villa'];
       // Recupère l'id de la villa dans la table
       $id     = $vVillaArray[$i]['Id'];
       echo "Villa au rang " . $i . " avec l'id " . $id . " et le nom " . $nom;
       }
    Ce code va t'afficher pour chaque résultat le rang dans le résultat ($i) et le numéro dans la table ainsi que son nom.

  9. #9
    Membre actif
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Points : 203
    Points
    203
    Par défaut
    Yep, merci tout marche !!!!!
    VrroOOOAAAAAPPPPPPPPPP !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] rang de nouvel enregistrement dans table
    Par platon1 dans le forum IHM
    Réponses: 4
    Dernier message: 24/09/2012, 11h48
  2. [XL-2007] Probleme combobox + trouver numéro de ligne d'un enregistrement
    Par roadruner dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/07/2011, 22h23
  3. Trouver le rang d'un enregistrement avec Activerecord
    Par Zfred dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 19/11/2008, 14h32
  4. Numéro auto : repartir du dernier enregistrement
    Par Konami15 dans le forum Modélisation
    Réponses: 5
    Dernier message: 16/10/2008, 00h34
  5. "Rang" d'un enregistrement dans une requête
    Par Takusen dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 28/09/2007, 14h53

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