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 en boucle while [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 149
    Par défaut UPDATE en boucle while
    Bonjour,

    Je suis un programmeur VB et j'ai du mal à faire un update en boucle en PHP. Remarque que l'ECHO fonctionne. Alors j'ose croire que mon SELECT est bon et que j'ai du mal à comprendre comment fonctionne le WHILE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $sql = "SELECT * FROM coco where ID =".$_POST['ID'];
     
    $result = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());   
     
    while ($row = mysql_fetch_array($result)) { 
     
    $row = 'UPDATE coco SET ready = "'.$ok.'"';
    echo $_POST['ID'];
     
    }
    Merci
    Gorj

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    $row = 'UPDATE coco SET ready = "'.$ok.'"';
    1 - ça vient d' où la variable $ok?
    2 - Utilise de simple quote pour entourer les valeurs dans un champ sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row = "UPDATE coco SET ready = '".$ok."'";
    A+.

  3. #3
    Membre éclairé Avatar de Netek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 57
    Par défaut
    Ceci devrait mieux marcher ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql = "SELECT * FROM coco where ID = '".$_POST['ID']."'";
     
    $result = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());   
     
    while ($row = mysql_fetch_array($result)) { 
     
    $sql2 = "UPDATE coco SET ready = '$ok'";
    $result2 = mysql_query($req2);
    echo $_POST['ID'];
     
    }
    Meme si dans ton script la boucle ne sert a rien ici.
    Il faudrait que tu expliques ce que tu cherches a faire

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 149
    Par défaut
    Salut, ta boucle actuelle tourne autant de fois que le nombre de ligne retournée par la 1er requete.
    Il semble qu'il manque un WHERE sur la requete située dans la boucle, car sinon là, une requete simple sans boucle ferai l'affaire.
    Pense à échapper $_POST['ID'] si tu compte sécuriser un peu ton script.
    Et dit nous en plus

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 149
    Par défaut Bonjour à tous et merci
    En fait, je veux mettre à jour tout les records de ma première requête. Si "ok" = 1, on met 1 dans tout les records, si il = 0, on met zéro dans tout les records. Le seul champ à mettre à jour est le champs "ready", et ça a comme impact de mettre en ligne ou non les lignes 0=pas en ligne, 1= en ligne.

    J'aimerais qu'on m'explique les lignes suivantes pour que je comprenne bien une fois pour toute :0...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($row = mysql_fetch_array($result)) {//Pourquoi une variable devant?
    $sql2 = "UPDATE coco SET ready = '$ok'"; //Pourquoi une variable devant?
    $result2 = mysql_query($req2); //Pourquoi cette ligne?
    }
    J'essais ça et je reviens... Nextdev, tu dis que si j'ai pas de where, j'ai pas besoin de while pour mettre à jour tout les champs des lignes de ma première requête? Si c'est le cas, c'est que je peux écrire en simultané, un nombre défini de donnée... En VB j'utilise un while ou un for ... Je vois pas comment ça pourait être autrement aec PHP. Mais je suis très curieux.

    Merci encore et j'attend de vos nouvelles.

    Gorj

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonsoir,

    ce que tu chercherais à faire ne serait il tout simplement pas de mettre à jour ta base pour un ID donné ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query('UPDATE coco SET ready = '.$ok.' WHERE id='.intval($_POST['ID']));

    EDIT: les variables n'ont d'utilité que lorsqu'elles sont utilisées ou exploitées. Si tu n'en as pas l'utilité dans le script, n'en mets pas

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

Discussions similaires

  1. Boucle WHILE FOUND et UPDATE
    Par Acivurt dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 07/03/2008, 01h03
  2. [MySQL] Probleme UPDATE avec boucle WHILE
    Par iverson_mac dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/06/2007, 17h07
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

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