[RESOLU] Update en mode array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Update en mode array

Re: Update en mode array

par Cypher_PHP » 22 mars 2013, 10:31

oui ça marche

je suis un peu bête d'avoir pas pensé à mettre ces lignes dans la boucle

merci beaucoup

bonne journée

Re: Update en mode array

par Fre3z69 » 22 mars 2013, 06:11

Salutation,

Je rejoint Moogli, tu exécute ta requête en dehors de ta boucle, c'est normale qu'il ne prenne en compte que la dernière valeur.

Exécute la dans la boucle, tu verras ça fonctionneras mieux ;-)

Et pour:
            $stmt = $db->prepare($sql);
            $stmt->execute(array(':title'=>$key, ':id'=>$val);
Fait plutôt du genre:
            $stmt = $db->query($sql);
            $stmt->execute(array(':title'=>$key, ':id'=>$val);
En espérant que ça t'aideras

Cordialement

Re: Update en mode array

par moogli » 22 mars 2013, 01:23

1/pas espion de requête préparée utilise query.
2/ le prépare et l'exécute étant en dehors du foreach le comportement décrit est normal.


@+

Re: Update en mode array

par Cypher_PHP » 21 mars 2013, 15:44

voici la réponse
UPDATE `tutos` SET title =:title WHERE id = :id
UPDATE `tutos` SET title =:title WHERE id = :id
UPDATE `tutos` SET title =:title WHERE id = :id
Update en masse réussie
donc presque pas bon ;)

Re: Update en mode array

par yann18 » 21 mars 2013, 15:30

bonjour,
essaies ça:

$value = array('Madrid'=>'1','Roma'=>'2','Lisbonn'=>'3' );
            foreach($value as $key => $val){
                $sql = "UPDATE `tutos` SET  title =:title WHERE id = :id ";
                echo $sql."<br />";
                }
            $stmt = $db->prepare($sql);
            $stmt->execute(array(':title'=>$key, ':id'=>$val);
            if ( $stmt ) {
                 echo "Update en masse réussie";
             } else{
                  echo "echec";
             }
 

Update en mode array

par Cypher_PHP » 21 mars 2013, 13:38

Bonjour

J'ai un petit problème d'update.En fait, je voulais mettre à jour les valeurs en fonction de leur id respectif

je constate que la requête sql ne fait que mettre à jour le dernier . Or ca devrait tout mettre à jour

voici mon code
$value = array('Madrid'=>'1','Roma'=>'2','Lisbonn'=>'3' );
            foreach($value as $key => $val){
                $sql = "UPDATE `tutos` SET  title ='$key' WHERE id = '$val' ";
                echo $sql."<br />";
                }
            $stmt = $db->prepare($sql);
            $stmt->execute(); 
            if ( $stmt ) { 
                 echo "Update en masse réussie";
             } else{
                  echo "echec";
             }
Merci beaucoup de votre aide