update d'un enregistrement

Eléphanteau du PHP | 33 Messages

26 juil. 2005, 09:15

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

Mammouth du PHP | 1353 Messages

26 juil. 2005, 09:17

Regarde la commande UPDATE :

Code : Tout sélectionner

mysql_query("UPADATE promo SET fichier ='$target.$_FILES['fichier']['name']');");
Modifié en dernier par guilt92 le 26 juil. 2005, 09:18, modifié 1 fois.

ViPHP
pjl
ViPHP | 2119 Messages

26 juil. 2005, 09:17


Mammouth du PHP | 19672 Messages

26 juil. 2005, 09:35

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 33 Messages

26 juil. 2005, 09:38

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

Mammouth du PHP | 1353 Messages

26 juil. 2005, 09:40

mysql_query("UPDATE promo SET photo = '$target.$_FILES['fichier']['name']', WHERE qualification"); 
C'est normal la "," ?
Modifié en dernier par guilt92 le 26 juil. 2005, 09:41, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juil. 2005, 09:41

et puis c'est surtout une erreur PHP, due aux guillemts mal utilisés, pas SQL ;)

Eléphanteau du PHP | 33 Messages

26 juil. 2005, 09:44

pas compris ](*,)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juil. 2005, 09:48

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 ;)

Eléphanteau du PHP | 33 Messages

26 juil. 2005, 10:06

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?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juil. 2005, 10:11

là il faut que tu te penches maintenant sur les remarques de guilt92

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

26 juil. 2005, 10:19

Modération : pourquoi ne pas poser la question dans "Base de données ?"

Eléphanteau du PHP | 33 Messages

26 juil. 2005, 10:22

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juil. 2005, 10:24

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 :)

Eléphanteau du PHP | 33 Messages

26 juil. 2005, 10:30

merci tous :pouce: