Page 1 sur 1

update d'un enregistrement

Posté : 26 juil. 2005, 09:15
par pierrax
Bonjour,

J'ai un script d'upload d'un fichier, il marche nickel.

Je voudrais mettre à jour la base de donnée qui me permet de récupérer le chemin de ce fichier dans une autre page.

Pour l'instant, j'ai ca :
mysql_query("INSERT INTO promo (fichier)  VALUES('$target.$_FILES['fichier']['name']');");
Je crois que "INSERT" crée un nouvelle enregistrement. Je voudrais simplement faire une mise à jour, car il n'y a qu'un seul enregistrement dans ma table.

Quelqu'un peut m'expliquer la syntaxe d'une mise à jour ?

Merci

Posté : 26 juil. 2005, 09:17
par guilt92
Regarde la commande UPDATE :

Code : Tout sélectionner

mysql_query("UPADATE promo SET fichier ='$target.$_FILES['fichier']['name']');");

Posté : 26 juil. 2005, 09:17
par pjl

Posté : 26 juil. 2005, 09:35
par Cyrano
Regarde la commande UPDATE :

Code : Tout sélectionner

mysql_query("UPADATE promo SET fichier ='$target.$_FILES['fichier']['name']');");
ATTENTION à ne pas oublier la clause WHERE pour ne pas mettre à jour toute la table

Posté : 26 juil. 2005, 09:38
par pierrax
merci pour vos réponse :

J'ai jeté un coup d'oiel sur les liens que vous m'avez donné et j'ai insript un code comme suit :
mysql_query("UPDATE promo SET photo = '$target.$_FILES['fichier']['name']', WHERE qualification"); 
et il me met un message d'erreur comme suit :
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in d:\www\ocai\pages\actualite\promotion\update\promo_01\images.php on line 122
Ca chie dans la colle.

J'ai compris que d'abord, on appelle la colonne correspondante au champ à updater. et qu'aprés ont lui attribue une valeur.

Mais aprés ca m'échappe

Posté : 26 juil. 2005, 09:40
par guilt92
mysql_query("UPDATE promo SET photo = '$target.$_FILES['fichier']['name']', WHERE qualification"); 
C'est normal la "," ?

Posté : 26 juil. 2005, 09:41
par ouckileou
et puis c'est surtout une erreur PHP, due aux guillemts mal utilisés, pas SQL ;)

Posté : 26 juil. 2005, 09:44
par pierrax
pas compris ](*,)

Posté : 26 juil. 2005, 09:48
par ouckileou
en fit je voulais dire que tu as certaines quotes qui font partie du code SQL, d'autres qui entourent les clés de tableau

donc forcément ça coince
solution : sortir les variables de la chaine
à prendre comme habitude pour éviter ce genre de problème
mysql_query("UPDATE promo SET photo = '".$target.$_FILES['fichier']['name']."', WHERE qualification");
mais il y a effectivement une erreur SQL comme l'a signalé guilt92 ;)

Posté : 26 juil. 2005, 10:06
par pierrax
J'ai plus de message d'erreur, mais la mise à jour de l'enregistrement ne se fait pas :
require_once('../../../../../Connections/ocai.php');
mysql_select_db($database_ocai, $ocai);
et
mysql_query("UPDATE promo SET photo = '".$target.$_FILES['fichier']['name']."', WHERE qualification");
Pour ma connection à la table, j'ai utilisé celle d'une requette :

[/php]
mysql_select_db($database_ocai, $ocai);

C'est peut - être là que y a problème?

Posté : 26 juil. 2005, 10:11
par ouckileou
là il faut que tu te penches maintenant sur les remarques de guilt92

Posté : 26 juil. 2005, 10:19
par mere-teresa
Modération : pourquoi ne pas poser la question dans "Base de données ?"

Posté : 26 juil. 2005, 10:22
par pierrax
C'est bon, ca marche, j'ai trouvé :

c'était à cause du "WHERE qualification" que j'ai enlevé.
mysql_query("UPDATE promo SET photo = '".$cible.$_FILES['fichier']['name']."'");
merci

Posté : 26 juil. 2005, 10:24
par ouckileou
c'était surtout à cause de la virgule avant le WHERE comme te l'avais dit guilt92

sans le WHERE comme l'a dit Cyrano tu vas mettre à jour TOUTE les lignes de ta table

mais si c'est ça que tu veux pas de soucis :)

Posté : 26 juil. 2005, 10:30
par pierrax
merci tous :pouce: