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

Administration MySQL Discussion :

Recupération multiple de données avec mysql_fetch_array


Sujet :

Administration MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut Recupération multiple de données avec mysql_fetch_array
    Bonjour

    je souhaite pouvoir inverser deux numéros de ligne dans une table mysql.

    Mon problème se trouve au niveau de la récupération des données.
    Ainsi, je récupère mon identifiant avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($data=mysql_fetch_array($requete)) {
     
    $data['NUM'];
    }
    et je voudrais l'inverser avec le NUM de l'enregistrement précédent.

    Existe t-il une commande telle $data[-1]['NUM'] pour récupérer la valeur de la ligne précédente ?
    Cordialement

  2. #2
    Membre éclairé Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Par défaut
    salut
    tu souhaites mettre à jour ta table en remplaçant les NUM par ceux des enregistrements précédents? je ne comprends pas bien?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut
    en fait,admettons qu'un enregistrement X possède le NUM 3 et Y le NUM 6.

    je veux pouvoir lister mes enregistrements, pour que quand j'arrive sur Y, je puisse récupérer la valeur de X, la mettre en tampon, lui donner la valeur de Y et redonner a Y l'ancienne valeur de X (tampon).

    Il s'agit d'un simple échange de valeur mais pour cela il me faut récupérer la valeur précédent la ligne actuelle, ce dont je n'arrive pas!

    ps : merci d'avoir répondu aussi vite!

  4. #4
    Membre éclairé Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Par défaut
    ah ok!
    tu peux dans ton while sauvegarder la valeur précédente...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (condition)
    {
    $val_prec = $val_actu;
    }
    tu devras sauvegarder l'id des enregistrement X et Y afin de pouvoir faire la mise à jour!

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Par défaut
    tu peux déplacer le pointeur de résultat avec mysql_data_seek()

    en fait, plutot que de faire une boucle "normale" avec un fetch_array, il faudra, si j'ai bien tout compris paskeu j'ai jamais utiliser data_seek, que tu parcours tes enregistrements à la main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $qry = mysql_query($sql) or die(mysql_error()); // On lance la requete
    $nb_result = mysql_num_rows(); // On demande le nombre de résultats renvoyés;
     
    for($i = 0; $i <= $nb_result; $i++){ // Boucle jusqu'à la fin des résultats
      if ($i > 0) {  // Si on est sur la deuxieme ligne de résultat (pour pouvoir récuperer la précedente avant de faire l'echange)
        $tab = mysql_fetch_array($qry); // On récupere les valeur dans un tableau tampon
        mysql_data_seek($qry, -1); // on remonte les resultats d'une ligne
        $tab2 = mysql_fetch_array($qry); // On mets les valeurs dans un autre tableau tampon
        mysql_data_seek($qry, 2); // On redescent sur la ligne de résultat suivante de celle où on était
        /* Code de traitement des tableaux pour inversement des valeurs */
      }
      mysql_data_seek($qry, 1); // On continue de descendre dans les résultats
    }
    j'ai jamais travaillé comme ca, mais je SUPPOSE que ca marche de cette facon
    a toi de voir le code pour les inversement de valeurs

    [Edit] J'ai un peu commenté le code

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Par défaut
    en fait, je crois que j'ai fait une petite erreur...
    hum....
    Oui, il faudrait descendre non pas une ligne après l'autre, mais 2 lignes par 2 lignes !

    j'édite le code

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Par défaut
    Bon, les deux solutions me conviennent, je vais tester et je prendrais celle qui marche.

    J'avoue que je n'avais pas pensé à enregistrer la valeur précédente dans une variable, surtout que j'utilise les sessions...

    En tout cas, merci de vos réponses !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/07/2013, 12h11
  2. [MySQL] Ordre d'affichage des données avec mysql_fetch_array
    Par kinezana dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/11/2012, 20h24
  3. Réponses: 13
    Dernier message: 04/06/2012, 09h08
  4. [VB6] Recupération données avec FsCommand
    Par Menthe_a_l_eau dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/03/2006, 11h42
  5. Recupérer une donnée avec un WHERE concernant la date
    Par benlasavate dans le forum Access
    Réponses: 1
    Dernier message: 23/01/2006, 08h18

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