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 :

Incrémentation champ dans une requête [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut Incrémentation champ dans une requête
    Bonjour à tous,

    Soit une table de membres avec

    ID Nom Compteur
    1 Tata 0
    2 Toto 0
    3 Titi 0
    4 Tutu 0

    ils sont classés dans la table par ordre alpha.

    Au début, ils ont tous 0 en compteur. Je dois d'abord sélectionner le 1er membre par ordre alpha. Puis j'incrémente son compteur de +1
    Ensuite je dois choisir le prochain qui suit dans l'ordre alpha, qui a encore 0, puis incrémenter son compteur de 1 etc...
    quand j'aurai sélectionné et incrémenté le dernier de la liste, ils seront tous à 1 et je devrai revenir au premier, l'incrémenter...et ainsi de suite

    Ben c'est bêta mais je galère pour créer la requête SELECT.
    Alors je veux bien quelques pistes.
    Merci !

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 331
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 331
    Billets dans le blog
    17
    Par défaut
    ils sont classés dans la table par ordre alpha.
    Et si un nouvel utilisateur Tete arrive, comment ça se passe ?

    Essaie ceci :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Membres
    SET Compteur = Compteur + 1
    ORDER BY Compteur ASC, Nom ASC
    LIMIT 1

  3. #3
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Bonjour,

    En fait, cette table de users est fixe, il n'y a pas de nouvelles insertions de membres. Le script reçoit des contacts que je dois distribuer équitablement à chacun des membres :
    1 contact arrive, il incrémente de 1 le compteur de Tata, puis le second contact incrémentera le compteur de Toto etc...et quand tout le monde aura reçu un contact et que les compteurs seront tous à 1, on revient au début et le prochain contact revient à Tata qui passe à 2 et ainsi de suite.

  4. #4
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Bonjour Renaud16, Séb,

    Une requête un peu tarabiscotée
    Mais qui semble fonctionner , en passant cet update, les compteurs s'incrémentent selon ce qui est demandé, il me semble ...
    Niveau performance !?
    A tester ...

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    update membre set compteur = compteur + 1 
    where id = (select min(id) from membre 
                      where id in  (select id from membre 
     		                     where nom = (SELECT min(nom) FROM membre  
                                                              where compteur = (select min(compteur) from membre))
                                                   and compteur = (select min(compteur) from membre)
                                       )
                     )

  5. #5
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Bonjour vttman

    Merci de ta proposition qui me semble intéressante. Je la teste et je reviens.

  6. #6
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Bonjour vttman, je viens de tester ta requête, elle fonctionne parfaitement.
    Je te remercie beaucoup et te souhaite une bonne journée.
    Renaud.

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

Discussions similaires

  1. Tester l'existence d'un champ dans une requête
    Par Reidid dans le forum Access
    Réponses: 3
    Dernier message: 23/01/2006, 22h02
  2. Réponses: 9
    Dernier message: 17/10/2005, 17h13
  3. Pb de type de champs dans une requête
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/05/2005, 15h19
  4. Changement valeur d'un champ dans une requête
    Par Mimile28 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/04/2005, 14h28
  5. [SQL] Renommer un champ dans une requête
    Par martonpylon12 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 15/11/2003, 01h59

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