Titre: (resolut) formulaire PHP et requete mysql
Posté par: morava le le 06-04-2014 a 16:29:56
Dans le manager de mon site, chaque module du manager se situe dans des dossiers. Chaque dossier contient 3 fichiers :
page.php -> contenue de la page du module tables.php -> requete : CREATE TABLE IF NOT EXISTS actions.php -> Action a faire + requete mysql
J'ai créé un nouveau champs dans la table "IPS_Reports" de mon phpmyadmin, j'ai intitulé ce champs : "Comments" au format TEXT. Ce champs permet de mettre un commentaire sur un rapport recu.
Dans la page.php, j'ai ajouté :
Code:
$sql = "SELECT * FROM {$dbprefix}Reports$where ORDER BY $orderby";
$apts = CreateApts($con); $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { $Commentid = $row["Comments"]; |
|
Jusque là, aucun probléme, je me suis rendu dans phpmyadmin, j'ai introduit "blabla" dans la cellule "Comments" d'une ligne, la page.php affiche "blabla" dans le commentaire de cette ligne.
J'ai ajouté un formulaire pour permettre de modifier le commentaire, pour celà, j'ai créé une action :
Code:
| $action4 = "<a href=\"action.php?action=Comments&id=$id\">Envoyer le commentaire</a>"; |
|
Puis j'ai crée une cellule dans un tableau :
Code:
| <input type='text' name='Commentid' style='width:270px' value='$Commentid'/>$action4 |
|
Jusque là aucun probléme, je retrouve "blabla" dans la cellule de ma ligne.
Maintenant, passons à la modification de ce commentaire:
L'action se fait dans le fichier "actions.php" :
Code:
<?php if ($action == "Comments") { if ($id != "") {
$Commentid = $_POST["Commentid"]; { mysql_query("UPDATE {$dbprefix}Reports SET Comments='$Commentid' WHERE ID=$id"); } } } ?> |
|
Mais ici, lorsque je change "blabla" par "blibli" et que je retourne dans phpmyadmin, mistere, "blabla" a disparue , le champs est vide ! et n'est pas remplacé par "blibli".
Que faire d'aprés vous?
Merci de votre aide... |
Titre: Re:formulaire PHP et requete mysql
Posté par: pppplus le le 06-04-2014 a 18:52:05
Vous envoyez $Commentid qui n'existe pas. C'est $_POST['Commentid'] |
Titre: Re:formulaire PHP et requete mysql
Posté par: morava le le 06-04-2014 a 19:23:09
Vous envoyez $Commentid qui n'existe pas. C'est $_POST['Commentid']
|
|
Oups, j'ai du mal a comprendre? c'est a dire? |
Titre: Re:formulaire PHP et requete mysql
Posté par: pppplus le le 06-04-2014 a 19:30:41
Vous souhaitez récupérer la valeur de :
Code:
| <input type='text' name='Commentid' style='width:270px' value='$Commentid'/>$action4 |
|
Cette valeur est $_POST['Commentid'] et pas $Commentid
Donc, votre requête mysql devrait être :
Code:
| mysql_query("UPDATE {$dbprefix}Reports SET Comments='".$_POST['Commentid']."' WHERE ID=$id"); |
|
Et encore mieux en nettoyant ce $_POST['Commentid'], par exemple :
Code:
| mysql_query("UPDATE {$dbprefix}Reports SET Comments='".mysql_real_escape_string($_POST['Commentid'])."' WHERE ID=$id"); |
|
|
Titre: Re:formulaire PHP et requete mysql
Posté par: morava le le 06-04-2014 a 19:36:41
| Non, ca ne fonctionne pas :( |
Titre: Re:formulaire PHP et requete mysql
Posté par: morava le le 06-04-2014 a 20:47:41
Vous souhaitez récupérer la valeur de :
Code:
| <input type='text' name='Commentid' style='width:270px' value='$Commentid'/>$action4 |
|
Cette valeur est $_POST['Commentid'] et pas $Commentid
Donc, votre requête mysql devrait être :
Code:
| mysql_query("UPDATE {$dbprefix}Reports SET Comments='".$_POST['Commentid']."' WHERE ID=$id"); |
|
Et encore mieux en nettoyant ce $_POST['Commentid'], par exemple :
Code:
| mysql_query("UPDATE {$dbprefix}Reports SET Comments='".mysql_real_escape_string($_POST['Commentid'])."' WHERE ID=$id"); |
|
|
|
J'ai essayé les deux requete dans la page actions.php, aucune des deux ne fonctionnent. |
Titre: Re:formulaire PHP et requete mysql
Posté par: pppplus le le 06-04-2014 a 21:13:52
Etes-vous sûr de bien récupérer la valeur de votre formulaire ?
Faites un print_r($_POST);
Pour voir si vous avez bien des valeurs. Si vous n'en avez pas, il faut revoir le code html du formulaire |
Titre: Re:formulaire PHP et requete mysql
Posté par: morava le le 06-04-2014 a 21:33:07
J'ai su resoudre le probléme, j'ai changé le nom de la variable. voici ce que j'ai changé :
dans action.php : Code:
if ($action == "Comments") { if ($id != "") {
mysql_query("UPDATE {$dbprefix}Reports SET Comments='Commentaire' WHERE ID=$id"); } } |
|
Dans page.php :
Code:
$action4 = "<a href=\"action.php?action=Comments&id=$id\">Envoyer le commentaire</a>";
<input type='text' name='Commentaire' style='width:270px' value='$Commentid'/>$action4 |
|
Merci pour votre aide, elle m'as bien rendu service :)
Par compte, j'ai un autre soucie sur mon site : www.morava-airlines.com (http://www.morava-airlines.com) Cliquez sur le drapeau France, vous allez voir que mes accents sont remplacé par un logange avec un point d'interrogation.
|
Titre: Re:formulaire PHP et requete mysql
Posté par: pppplus le le 06-04-2014 a 21:45:09
Pour moi, vous n'avez rien résolu.
Vous insérez juste le mot commentaire dans le champs Comments de votre table;
Pour les problèmes d'accents sur votre site: 1- il faut que les pages soient toutes en utf8 sans bom 2- il faut que le charset soit utf8 3- il faut que les tables soient en utf8
Si nécessaire, il faut ajouter mysql_query("SET NAMES 'utf8'"); (juste après mysql_connect) |
Titre: Re:formulaire PHP et requete mysql
Posté par: morava le le 06-04-2014 a 21:45:49
Erreur, je suis IDIOT ! Il annonce "commentaire sur chaque cellule que je change, normal ! J'ai lancé une requete pour qu'il ecrit "Commentaire" dans chaque champs. Bon, pffff |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|