Problème UPDATE avec formulaire

Petit nouveau ! | 3 Messages

19 juin 2011, 11:36

Bonjour,
voilà mon problème :
je voudrais faire un « UPDATE » dans ma base de donnée à l'aide d'un formulaire j'ai donc mon formulaire
 
<form method="post" action="details_entreprise.php">
<table border = 0>
<tr>
  <td>Nouveau Nom de l'entreprise</td>
  <td><input type=text name="nouveau_NomEntreprise"></td>
</tr>
<tr>
  <td COLSPAN=2><input type="submit" name="valider" value="envoyer"> </td>
</tr>
</table>
</form>
puis ma requête
<?php
$bdd->exec('UPDATE stage SET NomEntreprise = "'.$_POST['nouveau_NomEntreprise'].'" WHERE id = "'.$_SESSION['modif_id'].'" ');
?>
En exécutant cette page php ma table ne se met pas à jour mais efface la donnée de ma table.
La variable $_SESSION['modif_id'] me sert à sélectionner l'entreprise que j'ai choisi sur la page précédente.
J'ai vérifier que la variable POST['nouveau_NomEntreprise'] été bien gardé sur ma page (details_entreprise.php) par un
<?php echo $_POST[''nouveau_NomEntreprise'] ; ?>
et cette variable s'affiche bien.

J'ai cherché un peu partout mais je ne trouve aucune solution.
Merci de m'apporter votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 juin 2011, 11:47

Et dans la page qui exécute la requête as-tu bien un session_start() ? as-tu vérifié la requête générée avant de l'exécuter ?
<?php
$sql = 'UPDATE stage SET NomEntreprise = "'.$_POST['nouveau_NomEntreprise'].'" WHERE id = "'.$_SESSION['modif_id'].'" ';
echo $sql; // c'est parfois utile de voir la requete sql que l'on envoi à la base de données : )
$bdd->exec($sql);
?>
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

19 juin 2011, 15:58

Merci de m'avoir répondu,
Donc j'ai bien session_start() dans ma page qui exécute ma requête (biensur en première ligne avant tout autre code). J'ai modifié mon code comme suggéré
<?php
$sql = 'UPDATE stage SET $data NomEntreprise = "'.$_POST['nouveau_NomEntreprise'].'" WHERE id = "'.$_SESSION['modif_id'].'" ';
echo $sql;
$bdd->exec($sql);
?>
et lorsque je lance ma page j'ai bien un echo qui me renvois:

Code : Tout sélectionner

UPDATE stage SET $data NomEntreprise = "" WHERE id = "11"
Mais toujours le même problème pas de modification de ma table. J'espère que ce n'est pas dû à une erreur de syntaxe? (je dis ça car je commence à peine le php).
Si quelqu'un a une idée.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 juin 2011, 16:55

T'aurais pas un $data en trop dans ta requête sql ? :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

19 juin 2011, 17:15

Je ne croix pas 8-|
Et en plus ça m' efface ma donnée dans ma table :priere:

Bon j'ai résolu mon problème en mettant sur une page mon formulaire et sur la page de traitement de ce formulaire ma requête. Maintenant ça ne m'efface plus mes données et ça les mets à jour.
Je ne comprend pas pourquoi sur 2 pages ça fonctionne et pas sur une seule???
Si jamais quelqu'un à une réponse
Merci

ViPHP
AB
ViPHP | 5818 Messages

19 juin 2011, 18:44

et lorsque je lance ma page j'ai bien un echo qui me renvois:

Code : Tout sélectionner

UPDATE stage SET $data NomEntreprise = "" WHERE id = "11"
Cela aurait dû t'alerter. Tu vois bien que $data n'est pas interprété dans cette chaine de caractère. Et en plus le contenu = "" est vide. Le résultat attendu ne serait-il pas plutôt plutôt $query = "UPDATE stage SET NomEntreprise = 'valeur_data' WHERE id = '11'"