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 :

Update la Nème ligne d'une table ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut Update la Nème ligne d'une table ?
    Bonjour,

    Est il possible d'UPDATE une ligne bien précise en fonction de sa position dans une table ?

    Je m'explique j'aimerais savoir si il y a une technique plus simple que de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id_joueurs FROM joueurs ORDER BY id_joueur DESC LIMIT ?,1  // ? = la position dans la table
    $id_joueur = fetch()
    UPDATE joueurs SET var = true WHERE id_joueur = $id_joueurs // var = la variable à update

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les données n'ont pas de position dans une table.
    Quand tu utilises LIMIT en Mysql, tu indiques la position selon les résultats ordonnées de la requête.

    Si tu voulais mettre à jour le 100eme joueur inscrit, ta méthode est bonne (même si ça serait plus logique de se baser sur une date que sur l'id pour le tri).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Oui j'insiste au passage sur la remarque de sabotage. Un identifiant est simplement un identifiant et ne doit être utilisé pour rien d'autre, surtout pas pour faire du tri. Certains sgbdd peuvent réutiliser des id qui ont été supprimés, et donc ta requête pourrait retourner n'importe quoi. S'il y a une notion de temps dans ta requête, il faut créer un champ date et faire le tri sur cette colonne.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for ($compteur=0; $compteur<$roomjoueur; $compteur++) {
    $reqjoueurn = $bdd->prepare('SELECT id_joueur FROM joueurs ORDER BY id_joueur LIMIT ?,1');
    $reqjoueurn->execute(array($compteur));
    $joueurn = $reqjoueurn->fetch();
     
    $insertmbr = $bdd->prepare("UPDATE joueurs SET position = ? WHERE id_joueur = ?");
    $insertmbr->execute(array($compteur, $joueurn['id_joueur']));
    }
    j'ai décidé de créer une variable position dans ma table joueur mais ça ne fonctionne pas help :/

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ...ça ne fonctionne pas...
    Avec ça, on est bien avancé.....

    A partir du moment où, toi-même, tu ne sais pas nous expliquer selon QUEL(S) CRITERE(S) tu veux choisir la ligne à sélectionner, on ne peut pas grand chose pour toi.

    S'agit-il :
    • du dernier enregistré ? auquel cas une date d'enregistrement serait utile, ou un lastInsertId() ?
    • autre ?...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut
    je vais créer un autre poste avec un titre mieux adapté et une meilleur explication, je met celui-ci en résolu.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/09/2015, 23h15
  2. Réponses: 7
    Dernier message: 22/05/2015, 15h22
  3. Réponses: 1
    Dernier message: 06/03/2014, 18h24
  4. Réponses: 8
    Dernier message: 05/04/2010, 10h14
  5. UPDATE toute une ligne d'une table
    Par sbitsch dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 03/08/2007, 16h37

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