update plusieurs colonnes

Petit nouveau ! | 9 Messages

19 sept. 2011, 10:08

Bonjour,

je souhaite modifier plusieurs colonnes d'une table: le problème ci-dessus , on peut modifier seulement la dernière colonne . merci pour votre aide

if($_REQUEST['modif']=="ok"){

$id=$_POST['id'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];


$sql="UPDATE nm SET nom ='$nom',
prenom='$prenom' WHERE id in('1',2','3')";


$result=mysql_query($sql) or die( mysql_error() );

}
$sql="select id, nom, prenom from test";
$rs=mysql_query($sql);
$sql="select id, nom, prenom from nm";
$rs=mysql_query($sql);

?><table>
<tr><td>Nom</td><td>prenom</td></tr>
<form action="" method="post" name="modif">

<input type="hidden" name="modif" value="ok" />
<?php

while($data=mysql_fetch_assoc($rs)){
....

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 sept. 2011, 11:17

salut,

$sql="UPDATE nm SET nom ='$nom',
prenom='$prenom' WHERE id=$id";

la syntaxe est correcte pour mettre a jour les champs nom et prénom de la table nm pour une ligne précise (indiqué par l'id).

tu ne devrait directement utiliser des informations issues d'un formulaire, il faut les "protéger" avec mysql_real_escape_string

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 9 Messages

19 sept. 2011, 11:56

Bonjour,
Merci pour la réponse

Quand utilise "WHERE id=$id";" on change que la dernière, moi je souhaite change plusieurs ligne à la fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 sept. 2011, 12:13

Bonjour,
Merci pour la réponse

Quand utilise "WHERE id=$id";" on change que la dernière, moi je souhaite change plusieurs ligne à la fois.
Avec plusieurs couples nom / prenom différent ?

Ou affecter a plusieurs lignes les mêmes nom / prénom ? au quel cas la première syntaxe est bonne.

affiche la requête et teste la avec phpmyadmin ou la console mysql !


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 9 Messages

19 sept. 2011, 12:26

plusieurs lignes différent nom et prénom

ex.
id nom prenom
1 test1 test2 / remplace le nom par test2
2 titi toto / remplace le prénom par toto-te etc....
3 ... .....

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 sept. 2011, 19:59

Tu ne peux pas le faire ainsi, il faut faire en plusieurs requêtes.

En effet, un update te permet de mettre à jour plusieurs champs (nom, prenom, ...), de plusieurs enregistrements (id=1, 2, 3...), mais ne te permet pas de spécifier des valeurs différentes pour chaque enregistrement. Pour cela, il te faut faire un update pour chaque enregistrement à mettre à jour avec des valeurs différentes...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...