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 :

Utilisation d'une itération foreach pour le parcours du résultat [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut Utilisation d'une itération foreach pour le parcours du résultat
    Bonsoir à tous,

    je récupère le resultat d'un requete dans un tableau en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $query_rs_image = "SELECT ID_archive, date_creation FROM annonces_archives ";
    $rs_image = mysql_query($query_rs_image, $site) or die(mysql_error());
    $tableau = mysql_fetch_assoc($rs_image);
    maintenant, ce que je voudrais, c'est utiliser foreach pour faire un update, mais je n'arrive pas à l'utiliser, voici ce que je fais :

    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
     
    // ma fonction qui modifie ma date
     
    function ModifDate($sDate){
     
     $sAnnee = substr($sDate,4,4);
     $sMois = substr($sDate,2,2);
     $sJour = substr($sDate,0,2);
     
     $sNouvelDate = $sAnnee.$sMois.$sJour;
     return $sNouvelDate;
    }
    //mo update
     
    foreach ($row_rs_image as $value){
     
    $id = $value['ID_archive'];
    $sNewDate = ModifDate($value['date_creation'];);
    $sUpdate = "UPDATE annonces_archives SET date_creation = '$sNouvelDate' WHERE ID_archive = '$id'" ;
    mysql_select_db($database_site, $site);
    $Result1 = mysql_query($sUpdate, $site) or die(mysql_error());
    }
    mais ca ne marche pas, vous avez une idée ?

    Merci d'avance

  2. #2
    Membre chevronné Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Par défaut Re: Utilisation foreach
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tableau = mysql_fetch_assoc($rs_image);
    Ne te récupere pas un tableau mais juste une ligne.
    Pour parser tous tes résultats fait un truc comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    do {
      // et ici tu fait tes traitements sur chacune de tes lignes 
      // dont tes update
     
    } while ($tableau = mysql_fetch_assoc($rs_image))

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut
    Fabuleux !!
    c'est exactement ca.

    Je viens de faire un while tout simple, et ca marche.

    Merci

  4. #4
    Membre éclairé Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Par défaut
    Ne vaut il pas mieux faire un

    qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    do {
     
     
    }
    while();
    Le deuxieme cas va s'exectuer meme si la ressource est vide ...

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    hisy : je suis assez en accord avec toi, sauf que le do...while effectuera des traitements au premier tour (et non au dernier) alors que fetch n'aura pas encore été exécuté (au dernier, il sortira sans faire d'itération supplémentaire).

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

Discussions similaires

  1. JSP : Utilisation d'une itération dans une balise <html:option
    Par sandrine49 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/05/2011, 11h29
  2. Réponses: 4
    Dernier message: 22/02/2010, 15h47
  3. Réponses: 4
    Dernier message: 27/03/2008, 08h30
  4. Réponses: 17
    Dernier message: 24/10/2006, 01h45
  5. Réponses: 8
    Dernier message: 29/06/2006, 15h37

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