Aller au contenu

Problème avec variable dans UPDATE


Sujets conseillés

Posté

Bonjour,

Quelqu'un voit il d'où vient le problème ...

J'ai une requête comme ça qui fonctionne très bien :

$recupID = $HTTP_POST_VARS[rsID2bis];
mysql_select_db($database_connexionCEIF, $connexionCEIF);
$query_rsDetail = sprintf("SELECT mission.ID, mission.date_envoi, mission.theme, mission.besoin, mission.commentaires, mission.budget, mission.resultat, mission.suivi, mission.commentaires_suivi, mission.date_realisation, mission.infos_complement, mission.realise_par FROM mission WHERE mission.ID='$recupID'");

Et en dessous, un UPDATE avec la même variable $recupID en WHERE qui ne marche pas :

if($HTTP_POST_VARS['valider']=="ok")
{
mysql_select_db($database_connexionCEIF, $connexionCEIF);
$updateResult = "UPDATE mission SET mission.resultat='$resultats' WHERE mission.ID='$recupID'";
mysql_query($updateResult, $connexionCEIF) or die(mysql_error());
}

J'ai retourné le problème dans tous les sens, je ne comprends pas ....

Merci de votre aide

Léa

Posté

Bonjour,

essaies ceci :

if($HTTP_POST_VARS['valider']=="ok")
{
mysql_select_db($database_connexionCEIF, $connexionCEIF);
$updateResult = "UPDATE mission SET resultat='$resultats' WHERE ID='$recupID'";
mysql_query($updateResult, $connexionCEIF) or die(mysql_error());
}

Posté

Et comme ça ?

if($HTTP_POST_VARS['valider']=="ok")
{
mysql_select_db($database_connexionCEIF, $connexionCEIF);
$updateResult = "UPDATE mission SET resultat='". $resultats ."' WHERE ID='". $recupID ."'";
mysql_query($updateResult, $connexionCEIF) or die(mysql_error());
}

$recupID est-il numérique ?

La requête de récupération des données te retourne bien quelquechose ?

xpatval?

Posté (modifié)

non plus, je craque !!!

si je remplace $recupID par un chiffre ça marche par contre....

Modifié par Lea
Posté

Alors essaie comme cela:

if($HTTP_POST_VARS['valider']=="ok")
{
mysql_select_db($database_connexionCEIF, $connexionCEIF);
$updateResult = "UPDATE mission SET resultat='". $resultats ."' WHERE ID=". $recupID;

==> WHERE ID = ". $recupID ;

mysql_query($updateResult, $connexionCEIF) or die(mysql_error());

}

xpatval

Posté

Dans la première requète que tu donnes, tu utilises la fonction 'sprintf'. Pourquoi ?

Pour ton problème, tu devrais essayer ceci, et nous donner le résultat :

echo"<br>".$connexionCEIF;
echo"<br>".$database_connexionCEIF;
echo"<br>-".$_POST['valider']."-";
echo"<br>-".$resultats."-";
echo"<br>-".$recupID."-";
if($HTTP_POST_VARS['valider']=="ok")
{
mysql_select_db($database_connexionCEIF, $connexionCEIF);
$updateResult = "UPDATE mission SET resultat='$resultats' WHERE ID='$recupID'";
mysql_query($updateResult, $connexionCEIF) or die(mysql_error());
}

Posté

Voilà ce qui s'affiche :

Resource id #2

<effacé par anonymus...mais ca marche>

--

--

-151-

quand je tape :

echo"<br>".$connexionCEIF;
echo"<br>".$database_connexionCEIF;
echo"<br>-".$_POST['valider']."-";
echo"<br>-".$resultats."-";
echo"<br>-".$recupID."-";

Posté

Donc, à priori, ton problème vient du fait que la boucle ne s'effectue pas, puisque ta variable 'valider' n'est pas égale à 'ok', ni à rien du tout, d'ailleurs ;)

Qu'est ce qui fait que ta variable devrait être égale à 'ok' ?

Peux tu nous mettre la ligne qui envoie 'ok' ?

(tu dois avoir un formulaire ou un truc dans ce genre.)

Posté

Anonymus, j'ai un formulaire avec un champ masqué "valider" qui est égal à "ok" :

<input name="valider" type="hidden" id="valider" value="ok">

xpatval, j'ai essayé avec WHERE ID = ". $recupID ;, ça n'a rien donné.

C'est un gros mystère !!

Posté

Bon, tu es sur d'avoir une base ? un pc ? tu habites chez tes parents ?

Plus sérieusement.

$query_rsDetail = "SELECT mission.ID, mission.date_envoi, mission.theme, mission.besoin, mission.commentaires, mission.budget, mission.resultat, mission.suivi, mission.commentaires_suivi, mission.date_realisation, mission.infos_complement, mission.realise_par FROM mission WHERE mission.ID=". $recupID;
print $query_rsDetail;

Ca donne quoi ?

xpatval

Posté

Autre chose, pour simplifier ta requête SELECT, ote les mission de mission.truc, mission.bidule.

Etant donné que ta requête ne porte que sur une table, elle va forcément pointer sur une et une seule table.

xpatval

Posté

Lea,

Es-tu certaine que ton formulaire utilise la méthode "POST"... parce que si tu ne le précises pas c'est "GET" par défaut.

Et dans ce cas, $HTTP_POST_VARS[] est vide ;)

Posté

Alors, avant de faire :

if($HTTP_POST_VARS['valider']=="ok")

tu fais :

Foreach($_POST as $k=>$v)echo"
".$k." -> ".$v;

Tu auras ainsi toutes les variables renvoyées par ta méthode Post.

Anonymus.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...