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

MySQL Discussion :

Update d'un champ dans une clause WHERE


Sujet :

MySQL

  1. #1
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut Update d'un champ dans une clause WHERE
    Slt à tous,
    je pose la question à tout hasard. Est il possible de faire un Update sur un champs qui se trouve lui même dans la clause WHERE de la requet.

    Un exemple pour exprimé ce que je cherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    table 
    ID N°123
     
    $req1 = mysql_query("SELECT * FROM table ") or die("Erreur SQL1 !");
     
    UPDATE table
                SET1= ' . $_POST['1'] . ',
                      N°2= ' . $_POST['2'] . '3= ' . $_POST['3'] . '
                WHERE3= '.$_POST['3']. '';
    Bien evidement cela ne marche pas, le but etant de faire un update sur N°3. Donc existe t'il un autre moyen pour y parvenir, tous en sachant que je ne peux pas utiliser les autres champs dans la clause WHERE.

    Merci de votre aide
    @+

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Normalement, cela ne pose pas de problème par contre dans ton code tu as deux «'» à la fin , est que c'est normal !!! pas sur.

  3. #3
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    non le code c'est juste pour l'exemple,

    mais ce genre de code est possible ???

    c'est à dire faire un update d'un champ de la requete alors qu'il se trouve dans la clause where.

    j'ai essayé avec mon code est cela ne fonctionne pas.

    mon code :

    le formulaire :
    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
    <form name="formu" action="?rub=scmaj1" method="post" enctype="multipart/form-data"><br />
    <strong>Sous-Catégorie </strong>
    <?
    $req1 = mysql_query("SELECT * FROM souscat GROUP BY nom ORDER BY cat") or die("Erreur SQL1 !"); 
    while($data1 = mysql_fetch_array($req1)) {
    $cat1=$data1['cat'];
    if ($temp!=$cat1){
    echo'<br /><br />'.$cat1.'';
    $temp=$cat1;}
    echo'<br /><input type="text" name="nom[]" size="30" value="'.$data1['nom'].'" />
    <input type="text" name="ordre[]" size="5" value="'.$data1['ordre'].'" />
    <input type="hidden" name="id[]" value="'.$data1['id'].'" />
    <input type="hidden" name="cat[]" value="'.$data1['cat'].'" />';
    }
    ?>
    <br /><br />
    <input class="centrage" type="submit" value="Envoyer" /><br />
    la page update

    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
      foreach($_POST['id'] as $num => $id)
      {	  
        $sql = 'UPDATE souscat 
                SET ordre = ' . $_POST['ordre'][$num] . ',
                    cat = \'' . $_POST['cat'][$num] . '\',
                    nom = \'' . $_POST['nom'][$num] . '\' 
                WHERE id = ' . $id; 
        mysql_query($sql) 
          or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
          
        $sql = 'UPDATE produit 
                SET ordresouscat = ' . $_POST['ordre'][$num] . ', 
    					souscat = \'' . $_POST['nom'][$num] . '\'
    			WHERE souscat = \'' . $_POST['nom'][$num] . '\''; 
        mysql_query($sql) 
          or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
      }

    le probleme se situe dans le second update (en vert) il ne fait pas l'update dans la table produit.

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Pour ma part, je pense que tu devrais utiliser «"» à la place des «'» :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach($_POST['id'] as $num => $id)
      {	  
        $sql = "UPDATE souscat 
                SET ordre = ". $_POST['ordre'][$num] . ",
                    cat = '" . $_POST['cat'][$num] . "',
                    nom = '" . $_POST['nom'][$num] . "' 
                WHERE id = " . $id ."\";"; 
        ...
      }

  5. #5
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    Je n'ai aucun probleme sur cette requete de update
    c'est sur la second.

    La premiere fonctionne tres bien.

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "UPDATE produit 
                SET ordresouscat = ". $_POST['ordre'][$num] . ", 
    					souscat = '" . $_POST['nom'][$num] . "'
    			WHERE souscat = '" . $_POST['nom'][$num] . "';";

  7. #7
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    cela ne change rien
    le champs souscat dans la table produit ne s'update pas.

  8. #8
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "UPDATE produit
       SET ordresouscat = ". $_POST['ordre'][$num] . ", souscat = '" . $_POST['nom'][$num] . "'
       WHERE (produit.souscat = '" . $_POST['nom'][$num] . "');";

  9. #9
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    c'est tu temps réell : )
    Mais ca ne marche toujours pas.

    Le probleme c'est que sous cette forme je pense que cela update le champ dans la requete dans un premier temps, donc aprés du coup la clause where ne peut plus fonctionnée.

    Ok j'ai finalement ajouter une requete supplementaire dans le formule pour obtenir un valeur pour la clause where.

    Merci

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

Discussions similaires

  1. Utiliser un alias de colonne dans une clause Where MS SQL
    Par sir dragorn dans le forum Langage SQL
    Réponses: 11
    Dernier message: 12/10/2011, 09h31
  2. Utiliser un champ Oui/Non dans une clause WHERE ?!
    Par _MattU_ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 27/06/2008, 13h32
  3. Réponses: 1
    Dernier message: 03/02/2006, 12h35
  4. fonction booleenne dans une clause where ?
    Par user_h dans le forum Oracle
    Réponses: 1
    Dernier message: 20/10/2005, 15h05

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