Page 1 sur 1

update plusieurs colonnes

Posté : 19 sept. 2011, 10:08
par sem2011
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)){
....

Re: update plusieurs colonnes

Posté : 19 sept. 2011, 11:17
par moogli
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

@+

Re: update plusieurs colonnes

Posté : 19 sept. 2011, 11:56
par sem2011
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.

Re: update plusieurs colonnes

Posté : 19 sept. 2011, 12:13
par moogli
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 !


@+

Re: update plusieurs colonnes

Posté : 19 sept. 2011, 12:26
par sem2011
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 ... .....

Re: update plusieurs colonnes

Posté : 19 sept. 2011, 19:59
par Ryle
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...