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 :

Utiliser plusieurs fois le résultat d'une requête SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Par défaut Utiliser plusieurs fois le résultat d'une requête SQL
    Bonjour à tous,

    J'ai une question qui peut vous paraître toute bête mais après deux jours de recherche intensive (tousles forums, Google, etc.), j'en peux plus de ne pas trouver la solution et surtout de ne pas comprendre.

    Voici mon problème :

    J'arrive a récupérer des résultats d'une requête SQL, mais je ne peux les utiliser qu'une fois, après quoi, ma variable devient VIDE.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?php
         // A cette étape, nous sommes déjà connecté à la BDD et sous la bonne database.
     
         // J'éxecute ma requête SQL et je met le résultat dans la variable $PIVaineParNATOP
         $sql = "SELECT * FROM MaTable";
         $PIVaineParNATOP = mysql_query($sql) or die("La requête a échoué : ".mysql_error());
     
         // A cette étape, $PIVaineParNATOP = "Ressource #6", il me faut donc lire ligne par ligne dans cette ressource pour récupérer mes données.
     
         while($ligne = mysql_fetch_row($PIVaineParNATOP)) {
              echo $ligne[0]."<br>";
         }
     
         // Tout fonctionne, cela me ressort bien chaque NATOP, résultat de ma requête SQL
     
         // C'est ici que les galères commencent.....
     
         // Je veux réafficher mes données !
     
         echo "<br><br><hr><br><br>";
     
         while($ligne = mysql_fetch_row($PIVaineParNATOP)) {
              echo $ligne[0]."<br>";
         }
    ?>
    PROBLEME :
    Ma première boucle WHILE fonctionne correctement.
    Ma deuxième boucle WHILE ne me retourne rien. (comme-ci que ma variable $PIVaineParNATOP était devenue vide).

    HELPPP ME PLEASEEEEE

    Merci à vous

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    En préambule, je rappelle que l'API mysql est obsolète en PHP5.5+, et supprimée en PHP7. Il va falloir envisager de passer à PDO (ou mysqli, mais j'aime pas mysqli )

    Pour ton problème, il y a un pointeur dans le résultat de la requête (c'est ce qui permet à ta boucle de t'arrêter). Il faut donc que tu réinitialises le pointeur entre les 2 boucles par appel à mysql_data_seek :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while($ligne = mysql_fetch_row($PIVaineParNATOP)) {
    // ...
    }
    // ...
    mysql_data_seek($PIVaineParNATOP, 0);
    while($ligne = mysql_fetch_row($PIVaineParNATOP)) {
    // ...
    }
    Sinon, tu peux envisager t'utiliser une liste temporaire pour stocker les valeurs.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Par défaut
    Celira, tu es vraiment trop forte.

    Cela fonctionne parfaitement et ça me sauve la vie.


    un ENNOORRMMEE merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/04/2010, 14h39
  2. [AJAX] Gérer plusieurs pages de résultats d'une requête
    Par dubitoph dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 25/07/2007, 15h08
  3. Réponses: 5
    Dernier message: 24/08/2006, 15h00
  4. [MySQL] Réutiliser 2 fois le résultat d'une requête
    Par FrankOVD dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 05/05/2006, 17h08
  5. [MySQL] Parcourir plusieurs fois le résultat de ma requête
    Par borgfabr dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/12/2005, 09h54

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