Page 1 sur 1

requête UPDATE qui n'UPDATE rien

Posté : 28 août 2005, 18:07
par harry67
Bonjour,
J'ai un petit problème avec un script qui devrait normalement mettre à jour les champs d'une base et qui en fait, ne modifie rien. Et il n'y a aucun message d'erreur. J'ai vérifié si je recevais bien les variables POST et je les reçoit bien. Ce mystère me parait insoluble. Voici mon script :
<?php
$host="***********";
$user="*************";
$mpasse="**********";
$database="**********";

$connexion = mysql_connect($host, $user, $mpasse)
or die ("Connexion à la base impossible"); 

$db = mysql_select_db($database) 
or die("Sélection de la base impossible");

$req = "UPDATE membres
SET even='".$_POST[avert]."'";
$result = mysql_query($req) or die(mysql_error());

$req = "UPDATE gazette
SET edito='".$_POST[edito]."'";
$result = mysql_query($req) or die(mysql_error());

$req = "UPDATE gazette
SET inter_1='".$_POST[present]."'";
$result = mysql_query($req) or die(mysql_error());

$req = "UPDATE gazette
SET inter_2='".$_POST[inter]."'";
$result = mysql_query($req) or die(mysql_error());

$req = "UPDATE gazette
SET monde='".$_POST[monde]."'";
$result = mysql_query($req) or die(mysql_error());

?>

Voici les champs devant être modifiés :

Champ Type Attributs Null Défaut Extra Action
edito varchar (250) Non
inter_1 blob BINARY Non
inter_2 blob BINARY Non
monde blob BINARY Non

Merci de votre réponse

Posté : 28 août 2005, 18:37
par Cyrano
D'abord pourquoi 5 requêtes là où une seule suffirait ?

Ensuite, tu n'identifies aucune ligne en particulier, c'est le plus sûr moyen de faire une mise à jour sur toute la table. Proposition de corrigé (Ajuste la clause WHERE selon les noms de champ et d'identifiant)
<?php
$host="***********";
$user="*************";
$mpasse="**********";
$database="**********";

$connexion = mysql_connect($host, $user, $mpasse)
or die ("Connexion à la base impossible");

$db = mysql_select_db($database)
or die("Sélection de la base impossible");

$req = "UPDATE membres
SET even='".$_POST[avert]."', 
    edito='".$_POST[edito]."', 
    inter_1='".$_POST[present]."', 
    inter_2='".$_POST[inter]."', 
    monde='".$_POST[monde]."'".
" WHERE identifiant = ". $id .";";
$result = mysql_query($req) or die(mysql_error());
?>
Fais afficher la requête générée et teste là directement dans phpMyAdmin.

requête UPDATE qui n'UPDATE rien

Posté : 28 août 2005, 18:59
par harry67
C'est bon, merci beaucoup!

Posté : 28 août 2005, 19:02
par Cyrano
[Résolu] :?: