Problème utilisation UPDATE avec $_POST [Résolu]

Signaler
Messages postés
5
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
20 juillet 2007
-
Messages postés
5
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
20 juillet 2007
-
bonjour,

je suis entrain de développer un logiciel de helpdesk,
je programme en php depuis presque 2 semaines, et pourtant, je bloque sur des problèmes (excuser moi du langage) à la con!

donc, en gros:

j'essaie de faire l'UPDATE d'une table, à partir de variable venant d'un textarea, et d'une variable venant d'un formulaire ($_POST)

$query ="UPDATE solution
SET solution_description = '$text_solution'
WHERE id_ticket='$idticket'";

avec $text_solution venant du textarea,
et $idticket provenant du $_POST, qui est un chiffre:  $idticket=$_POST['radio_name'] ;
solution_description et id_ticket étant deux colonnes d'une meme table.

j'ai fait plusieurs tests:
    -lorsque je remplace '$idticket' par un numèro de ligne existante ça marche nikel, ca update comme il faut la ligne concerné de la table, dans la bonne colonne.
    -par contre, si j'exécute la requête tel quel, ca me remplit la bonne colonne, à la bonne ligne, mais ca ne marque "rien", en gros ca m'efface toutes les données de cette case! je ne comprends pas trop...
lorsque je fait un echo de $idticket ca m'affiche bien le nombre voulu.

j'ai essayé mainte et mainte syntaxes tirées de différents forum, sans en trouver une qui marchent...

Donc voila,
j'espère que j'ai donné assez de précision.

merci d'avance
 Nico

5 réponses

Messages postés
5
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
20 juillet 2007

salut,

j'ai trouvé une solution à mon problème,
je n'y avais pas pensé, c'est tout con, je  stocke la valeur récupéré par le $_POST dans la base de donnée, puis je la récupére quand j'en ai besoin avec un SELECT.

voila la partie de mon code:

if(isset($_POST['radio_name']))     
$idticket=$_POST['radio_name'];
else      $idticket="";

//MISE EN TAMPON DE LA VALEUR RADIO_NAME
if ($idticket!='')
{$query_temp ="UPDATE solution
SET temp = '$idticket'
WHERE id_ticket='0'";   
$insert_temp=mysql_query ($query_temp) or die ("Requête invalide :
".mysql_error());
}

en esperant avoir été assez clair pour servir à quelqu'un
si il y a un probleme, hesiter pas à me demander des renseignements (sans oublier que je suis qu'un grand debutant!)
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Hello,

donc le pb ne vient pas de $text_solution ? Parce que sinon, si tout est correct dans ce que tu as dit je ne vois pas.

Essaie les requêtes les unes après les autres dans phpmyadmin.

à+
Messages postés
5
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
20 juillet 2007

après le fast-food, la fast-réponse!
merci bien!

beh à priori, cela ne doit pas venir non plus de $text_solution puisque lorsque je mets un chiffre à la place de $idticket
genre :
$query ="UPDATE solution
SET solution_description = '$text_solution'
WHERE id_ticket=20";
ça m'injecte bien le texte de text_solution au bon endroit.
donc bon...

je vais voir ce que je peux faire avec phpmyadmin, c'est vrai que je n'ai pas eu le reflexe!
Messages postés
5
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
20 juillet 2007

ca ne marche toujours pas...
help!
si quelqu'un a une idée... cela m'aiderait grandement!

merci!
Messages postés
5
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
20 juillet 2007

j'ai trouvé d'où vient le problème,
mais je n'ai pas encore de solution.

dans un premier temps je choisi un problème à traiter dans une premiere page (pb stocké dans une bdd),
puis après l'avoir choisie (grâce à des radiobuttons dynamique)
je récupère la donnée pas $_POST dans une deuxième page,  cette valeur est la valeur d'une ligne de la table.
puis dans un champ de text je marque la solution, puis j'effectue l'UPDATE.
le problème est que la valeur du $_POST n'est plus valide dans la 2ème étape.
j'ai découvert ça en faisant un echo à chaque étape de ma requête UPDATE.

1ère étape, envoie par $_POST:
    echo:
    UPDATE solution
SET solution_description = ''
WHERE id_ticket='19'
    on peut voir qu'il y a bien la valeur de $idticket qui est égale à 19, mais rien pour $text_solution(normal vu que je n'ai pas encore     rempli le champ de texte...)
2ème étape, écriture dans le textarea puis envoie de la requête UPDATE
    echo:
    UPDATE solution
SET solution_description = 'test'
WHERE id_ticket=''
    ici par contre, $text_solution contient bien la valeur de ce que j'ai rempli soit "test", mais la valeur de $idticket n'est plus là...

Donc ma question, comment puis-je contourner ce problème, comment pourrais stocker la valeur du $_POST  ($idticket) pour pouvoir l'utiliser autant que je veux?

voila comment je récupère la valeur de $idticket:
if(isset($_POST['radio_name']))    
$idticket=$_POST['radio_name'];
else      $idticket="";

Merci d'avance!