UPDATE qui ne fontionne pas

Tibooz
Invité n'ayant pas de compte PHPfrance

20 juin 2008, 17:37

Bonjour,

J'ai un petit problème sur une requête d'update.
Je cherche suite à une modification d'un formulaire, à updater une ligne de ma table, mais l'enregistrement ne fonctionne pas. Ai-je fais une erreur?

Le script ci dessous est le script de contrôle lancé après un FORM method="POST".

$login = $_SESSION['login'] ;
$date_entretien = $_POST['theDate2'] ;
$societe = $_POST['societe'] ;
$poste = $_POST['poste'] ;
$lien = $_POST['lien'] ;
$adresse = $_POST['adresse'] ;
$CP = $_POST['CP'] ;
$ville = $_POST['ville'] ;
$contact = $_POST['contact'] ;
$poste_contact = $_POST['poste_contact'] ;
$mail = $_POST['mail'] ;
$tel = $_POST['tel'] ;
$statut = $_POST['statut'] ;
$date_entretien = $_POST['date_entretien'];
$remarques = $_POST['remarques'] ;



mysql_connect($host, $user, $pass) or die("Impossible de se connecter à la base de données");
mysql_select_db($bdd) or die("Impossible de se connecter à la base de données");

	mysql_query("UPDATE candidatures SET date='" . $date . "', societe='" . $societe . "', poste='" . $poste . "', lien='" . $lien . "', adresse='" . $adresse . "', CP='" . $CP . "', ville='" . $ville . "', contact='" . $contact . "', poste_contact='" . $poste_contact . "', mail='" . $mail . "', tel='" . $tel . "', statut='" . $statut . "', date_entretien='" . $date_entretien . "', remarques='" . $remarques . "' WHERE ID='" . $_POST['ID'] . "'");

echo "<script>window.location='consultation_candidature1.php'</script>";

?>
Merci par avance de votre aide.

Mammouth du PHP | 1353 Messages

20 juin 2008, 17:44

Test tes valeurs postées pour savoir si elles sont correctes (surtout ID), fais un echo de ta requete pour voir si elle est correcte, et ajoute un or die(mysql_error()) à la fin de ta query pour avoir le message d'erreur...
echo "<pre>".var_dump($_POST)."</pre>";
echo "UPDATE candidatures SET date='" . $date . "', societe='" . $societe . "', poste='" . $poste . "', lien='" . $lien . "', adresse='" . $adresse . "', CP='" . $CP . "', ville='" . $ville . "', contact='" . $contact . "', poste_contact='" . $poste_contact . "', mail='" . $mail . "', tel='" . $tel . "', statut='" . $statut . "', date_entretien='" . $date_entretien . "', remarques='" . $remarques . "' WHERE ID='" . $_POST['ID'] . "'"); 
mysql_query("...") or die(mysql_error()); 
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Tibooz
Invité n'ayant pas de compte PHPfrance

20 juin 2008, 18:16

J'ai l'alerte suivante :
Notice: Undefined index: ID in c:\documents and settings\thibaut\bureau\jobee\modif_candidature.php on line 15

Notice: Undefined index: date_entretien in c:\documents and settings\thibaut\bureau\jobee\modif_candidature.php on line 29

Notice: Undefined variable: date in c:\documents and settings\thibaut\bureau\jobee\modif_candidature.php on line 37

Notice: Undefined index: ID in c:\documents and settings\thibaut\bureau\jobee\modif_candidature.php on line 37
array(15) { ["theDate2"]=> string(0) "" ["societe"]=> string(8) "Pixmania" ["poste"]=> string(7) "CDP SAV" ["lien"]=> string(0) "" ["adresse"]=> string(24) "Avenue dela grande armée" ["CP"]=> string(5) "75016" ["ville"]=> string(5) "Paris" ["contact"]=> string(7) "A. Koch" ["poste_contact"]=> string(20) "Directeur de projets" ["mail"]=> string(20) "[email protected]" ["tel"]=> string(3) "???" ["statut"]=> string(1) "0" ["remarques"]=> string(0) "" ["x"]=> string(3) "108" ["y"]=> string(2) "43" }
A priori, je ne retrouve pas mon ID.
Désolé de t'embêter avec mes problèmes... ;D

ViPHP
ViPHP | 2291 Messages

20 juin 2008, 18:28

Bête question mais ou est définie la variable suivante:
$_POST['ID'] :wink:

Mammouth du PHP | 1353 Messages

20 juin 2008, 18:30

Je pense qu'il y a un problème au niveau de ton formulaire... les valeurs ne sont pas récupérées correctement du tout...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 422 Messages

20 juin 2008, 19:02

Un peu de discrétion quand vous faites des copier/coller de données. Je ne suis pas certain que Mme A. K. apprécie tellement que son email se balade sur Internet.

D'autre part, scindez la création de votre sql et son exécution, cela permet de le tester facilement
$sql = "update ...";
echo $sql; // Ligne à mettre en commentaire lorsque le debuggage est fait
$result = mysql_query($sql);
if (!$result) {
    die('Requête invalide : ' . mysql_error()); //Ca aide toujours de voir l'erreur
}