UPDATE d'une table phpMySQL saisi formulaire
RésoluLili_754 Messages postés 137 Statut Membre -
J'me suis fait une fausse joie :-( je n'arrive pas à comprendre pourquoi ça marche pas. Quand je saisi les données de mon formulaire je les vois bien dans la page traitement_Motif_Mon.php mais ça ne modifie rien dans ma base de donnée, quelqu'un peux m'aider pleaaaaase
En faite pour vous expliquez, en gros, en fonction de l'id étudiant correspondant à l'id du projet je dois etre capable de modier son montant dans ma base de donnée..... Quand j'ai fait un test j'ai mis le même montant qui correspondait à ma base de donnée donc c'est pour ça que j'ai cru que cela avait marché :-(
<form class="formulaire" method="post" action="traitement_Modif_Mon.php" onsubmit="return check() ;"> <!-- formulaire -->
<div id="projet" class="input">
<span>L'identifiant du projet.</span>
<input name="id_projet" maxlength="30" type="text" id="id_projet" placeholder="ID du projet" required>
</div>
<div id="etudiant" class="input">
<span>L'identifiant du l'edtudiant.</span>
<input name="id_etudiant" maxlength="30" type="text" id="id_etudiant" placeholder="ID Etudiant" required>
</div>
<div id="new_montant" class="input">
<span>Vous devez entrez votre nouveau montant.</span>
<input name="new_montant" maxlength="30" type="text" id="new_montant" placeholder="Votre nouveau montant" required>
</div>
<input class="bouton"type="submit" value="Envoyer">
</form>
<la page de traitement>
<?php
/* creation des variables dont les données sont celles entrées dans le formulaire */
$id_projet = $_POST['id_projet'];
$id_etudiant = $_POST['id_etudiant'];
$new_montant = $_POST['new_montant'];
/*echo pour voir si on récupère bien les données saisies*/
echo 'id du projet est '.$id_projet.'<br/>';
echo 'id de etudiant est '.$id_etudiant.'<br/>';
echo 'le nouveau montant est '.$new_montant.'<br/>';
/* ensuite on se connecte a la BDD */
try{
$bdd = new PDO('mysql:host=localhost;dbname = louerUnEtudiant', 'root', 'root');
}
catch (exception $e)
{
dir('Erreur : ' .$se->getMessage());
}
mysql_query(" UPDATE Modif_Compte SET new_montant = $new_montant
WHERE id_projet = $id_projet AND id_etudiant = $id_etudiant ");
?>
Linda
- UPDATE d'une table phpMySQL saisi formulaire
- Table ascii - Guide
- Winget update - Guide
- Comment saisir une adresse url - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Windows update bloqué - Guide
9 réponses
La problématique centrale est qu'un formulaire envoie id_projet, id_etudiant et nouveau_montant et que la mise à jour du montant ne se répercute pas dans la base de données malgré l'affichage des valeurs. Plusieurs apportent des solutions côté PHP et MySQL en privilégiant PDO ou l'interface classique, par exemple une requête UPDATE correctement construite avec des guillemets autour des valeurs pour id_projet, id_etudiant et nouveau_montant. En plus des conseils techniques, certains signalent des erreurs fréquentes liées à l'usage de mysql_query, à l'échappement des variables et au type de champ, et recommandent d'utiliser une requête préparée avec des paramètres liés.
Soit tu utilises l'interface PDO, et la requête serait du type :
$bdd->exec("UPDATE Modif_Compte SET new_montant = '$new_montant'
WHERE id_projet = '$id_projet' AND id_etudiant = '$id_etudiant';");
Soit tu utilises l'interface classique ; voici un tutoriel tout simple : https://eusebius.developpez.com/phpmysql-base/
Est-ce que tu as essayé de tester ta requête dans PhpMyAdmin par exemple, pour voir si elle fonctionne ?
Il faudrait aussi voir dans les logs Apache, il devrait y avoir une erreur générée si la requête ne marche pas. Cela pourrait aider pour connaître la source du problème.
Tu mélanges deux manières d'utiliser mysql : l'interface classique (fonctions mysql_qq chose comme mysql_query) et l'interface PDO.
Tu as fait la connexion en PDO, et tu interroges ta base en mysql_xxx. Ce n'est pas compatible.
#1054 - Unknown column '$id_projet' in 'where clause'
Je ne vois pas pourquoi il me dit ça, pour tant j'ai bien une colonne qui s'appelle id_projet...
@le pere Oui j'ai fait ma connexion en PDO car j'ai suivi les conseils du Site du Zéro... Je m'initie, je n'ai pas beaucoup de compétence, je cherche mais je ne trouve pas le moyen de régler mon souci :-( comment je dois l'interroger?? Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionmysql_query("UPDATE Modif_Compte SET new_montant = '$new_montant'
WHERE id_projet = '$id_projet' AND id_etudiant = '$id_etudiant';");
WHERE id_projet = $id_projet AND id_etudiant = $id_etudiant ");
Lorsque le type de ton champs a modifier n'est pas entier il faut des quillemets (')
et le champs doit etre entre cotes du altgr7
mysql_query(" UPDATE 'Modif_Compte' SET 'new_montant' = '".$new_montant."'
WHERE 'id_projet' ='".$id_projet."' AND 'id_etudiant' ='".$id_etudiant."';");
essaie avec la modification des cotes et double cotes ...
l editeur a envoyé ballader les côtes du 7.Fais gaffe au copier coller ...
Notice: Undefined variable: requete in /Applications/MAMP/htdocs/Sta_Mod_Mon/traitement_Modif_Mon.php on line 26
Notice: Undefined variable: requete in /Applications/MAMP/htdocs/Sta_Mod_Mon/traitement_Modif_Mon.php on line 26
Erreur dans votre requete :"
Query was empty /* mysql_query(" UPDATE 'Modif_Compte' SET 'new_montant' = '".$new_montant."' WHERE 'id_projet' ='".$id_projet."' AND 'id_etudiant' ='".$id_etudiant."';"); */
Moi mon souci c'est comment faire pour que ma requête interroge ma base de donner.. Ma requête je l'ai essaie toute seul elle marche bien....
WHERE 'id_projet' ='".$id_projet."' AND 'id_etudiant' ='".$id_etudiant."';";
if(!$resultat=mysql_query($requete)) {echo('<hr>Erreur dans votre requete :"'.$requete.'<hR>'.mysql_error());}
avec tout ca et la connection realisée...
Erreur dans votre requete :"UPDATE 'Modif_Compte' SET 'new_montant' = '11' WHERE 'id_projet' ='1' AND 'id_etudiant' ='1';
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Modif_Compte' SET 'new_montant' = '11' WHERE 'id_projet' ='1' AND 'id_etudiant' at line 1
Je vois bien que mes variables ont ete modifié dans la page traitement_Modif_Mon.php mais dans la base le new_montant ne change jamais :(
if(!$resultat=mysql_query($requete)) {echo('<hr>Erreur dans votre requete :"'.$requete.'<hR>'.mysql_error());}