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

Langage PHP Discussion :

mysql_fetch_assoc plusieurs fois dans un script


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 18
    Par défaut mysql_fetch_assoc plusieurs fois dans un script
    Bonjour,
    J'ai mon script suivant :
    Tout fonctionne bien jusqu'au niveau de mon premier mysql_fetsh_assoc. La région répétée de mon select s'affiche bien avec les bonnes valeurs. La ou je n'arrive plus à rien. C'est que lorsque je répète la même procédure pour la deuxième boucle, rien ne s'affiche. Le pointeur ne remonte pas (enfin c'est que j'en ai conclu). Du coup pour l'exemple j'ai mis une simple boucle. Donc j'ai bien mes $i qui s'incrémente mais du coup plus moyen de récupérer les valeurs du mysql_fetsh_assoc du haut (forcément plus dans la boucle), mais si je mets le même code : ne fonctionne pas
    Je suis un peu perdu et débutant. Je continue à chercher mais je désespère.

    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
     
     
    <?php if ($totalRows_ListeOptions > 0) { // Show if recordset not empty ?>
    	<input type="hidden" name="on1" value="Option">
        <select name="os1">
        <option value="Sans Options">Sans options €<?php echo $row_ListEvent['ACOMPTE_EVENT']; ?></option>
            <?php do { ?>
              <option value="<?php echo $row_ListeOptions['NAME_OPTION_EVENT'];?>"><?php echo $row_ListeOptions['NAME_OPTION_EVENT']." €".number_format(($row_ListeOptions['PRIX_SUP_OPTION_EVENT']+$row_ListEvent['ACOMPTE_EVENT']), 2, '.', ' ');?></option>
              <?php } while ($row_ListeOptions = mysql_fetch_assoc($ListeOptions)); ?> // jusque la tout fonctionne bien j'ai bien mon select avec mes options et ma région répétée nickel la ou ca bloque c'est juste après
              </select>
              <input type="hidden" name="option_index" value="1">
              <?php do { ?>
              <input type="hidden" name="option_select<?php echo $i; ?>" value="<?php echo $row_ListeOptions['NAME_OPTION_EVENT'];?>">
              <input type="hidden" name="option_amount<?php echo $i; ?>" value="70.00">
              <?php $i++; } while ( $i < $totalRows_ListeOptions ); ?>
     
     
     
            <?php } else {// Show if recordset not empty sinon afficher le prix de base?>
             <input type="hidden" name="amount" value="<?php echo $row_ListEvent['ACOMPTE_EVENT']; ?>">
    		<?php } ?>
    Si quelqu'un pouvait me donner une piste ou une solution ca serait vraiment cool. Je vous remercie par avance.

  2. #2
    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
    Enregistres les résultats de ta requête dans un tableau. Ce sera plus pratique et tu pourras le lister autant de fois que tu veux.

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 18
    Par défaut
    Merci beaucoup pour la réponse rapide.
    Je débute. Comment fais-tu pour stocker les résultats dans un tableau et les appeler dans la boucle ? via une méthode particulière ? Je ne vois pas comment faire si tu avais un exemple ou une doc. Merci encore

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $data = array();
    while($row = mysql_fetch_assoc($query)) {
       $data[] = $row;
    }
    Ensuite, tu parcours ainsi autant de fois que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($data as $row) {
       ...
    }

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 18
    Par défaut Re
    Merci beaucoup pour la réponse rapide :
    J'ai essayé le code suivant :
    et lorsque je fais un print_r($data) : Je n'ai qu'une seule ligne sur les 3 résultats qui devraient apparaitre. Je dois mal faire quelque chose.

    2e chose : Je ne sais pas comment faire apparaitre le numéro de ligne de résultat équivalent à $i rien ne s'affiche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    print_r($data)
    Array
    (
        [0] => Array
            (
                [ID_OPTION_EVENT] => 2
                [ID_EVENT] => 27
                [ORDRE_AFFICH] => 2
                [NAME_OPTION_EVENT] => Location Snow
                [PRIX_SUP_OPTION_EVENT] => 200.00
            )
     
    )
    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
     
        <option value="Sans Options">Sans options €<?php echo $row_ListEvent['ACOMPTE_EVENT']; ?></option>
     
            <?php foreach($data as $row) { ?>
              <option value="<?php echo $row['NAME_OPTION_EVENT'];?>"><?php echo $row['NAME_OPTION_EVENT']." €".number_format(($row['PRIX_SUP_OPTION_EVENT']+$row_ListEvent['ACOMPTE_EVENT']), 2, '.', ' ');?></option>
              <?php }; ?>
              </select>
              <input type="hidden" name="option_index" value="1">
              <?php foreach($data as $row) { ?>
              <input type="hidden" name="option_select<?php echo $i; ?>" value="<?php echo $row['NAME_OPTION_EVENT'];?>">
              <input type="hidden" name="option_amount<?php echo $i; ?>" value="<?php echo number_format(($row['PRIX_SUP_OPTION_EVENT']+$row_ListEvent['ACOMPTE_EVENT']), 2, '.', ' ');?>">
              <?php  }; ?>
     
            <?php } else {// Show if recordset not empty sinon afficher le prix de base?>
             <input type="hidden" name="amount" value="<?php echo $row_ListEvent['ACOMPTE_EVENT']; ?>">
    		<?php } ?>

  6. #6
    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
    Pour afficher ta ligne il suffit de déclarer $i=1 avant ton foreach et ensuite d'incrémenter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $i=1;
    foreach($data as $row) 
    { 
    //...
    echo $i;
    //...
    $i++;
    } 
    ?>
    Pour ta question numéro 1, quand tu fais exécuter ta requête dans une fenêtre sql de phpMyAdmin (pour contrôle) tu as bien 3 lignes de résultats ?

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

Discussions similaires

  1. utilisation de script js plusieurs fois dans une même page
    Par tribalnanasss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/07/2010, 00h34
  2. repeter plusieurs fois le meme script dans une page
    Par juju03 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 02/07/2008, 11h22
  3. [GD] Redimension d'image - plusieurs erreurs dans mon script
    Par Henry9 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/02/2007, 10h58
  4. Sous-requête excutée plusieurs fois dans une requête
    Par sheridan31 dans le forum Oracle
    Réponses: 8
    Dernier message: 03/07/2006, 16h18
  5. Réponses: 2
    Dernier message: 14/06/2006, 08h53

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