Probleme avec la requete sql "SELECT ... FOR UPDATE" [Résolu]

kgadhi 122 Messages postés mardi 9 août 2005Date d'inscription 18 décembre 2007 Dernière intervention - 30 mars 2006 à 14:40 - Dernière réponse : sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention
- 30 mars 2006 à 20:08
Bonjour tout le monde et merci pour votre aide

Pour mon site perso hébérgé chez free j'ai un probleme avec une requete:

....$Req_Param "SELECT Param_Val FROM Parametres WHERE Param_Type 'Personne_Id' FOR UPDATE";
$Res_Param = mysql_query($Req_Param);

$Val_Param = mysql_result($Res_Param, 0, "Param_Val");
$Val_Param = $Val_Param + 1;
$Req "UPDATE Parametres SET Param_Val $Val_Param WHERE _Type = 'Personne_Id'";
$Res = mysql_query($Req);
....

mais le probleme c'est que rien ne se passe.
J'ai l'habitude de faire ce genre de requete mais la chez free ça ne marche pas et je n'arrive pas à trouver l'erreur.
Merci de bien voulir m'aider.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
ehmarc 393 Messages postés mardi 2 décembre 2003Date d'inscription 29 septembre 2008 Dernière intervention - 30 mars 2006 à 15:26
3
Merci
salut,


Deja as tu une erreur qui s'affiche?


Si je me gourre pas le principe du FOR UPDATE est de verroullé l'enregistrement ce qui fait que ton prochain update ce fera sur ce résultat bref pas besoins de remettre de where dans ton update.

Ensuite le meilleur moyen de savoir d'ou vient ton erreur est le debugage pour ca rien de mieux que le echo tu peut en placer autant que tu veut a des endroits strategiques (il suffit de les enlever apres ou de les mettre en commentaires)
$Req_Param "SELECT Param_Val FROM Parametres WHERE Param_Type 'Personne_Id' FOR UPDATE";
$Res_Param = mysql_query($Req_Param);

$Val_Param = mysql_result($Res_Param, 0, "Param_Val");
echo $Val_Param; //ca va te permettre d'etre sur que ton code ramene bien un resultat et peut etre mieux cerné ton probleme
$Val_Param = $Val_Param + 1;
$Req "UPDATE Parametres SET Param_Val $Val_Param WHERE _Type = 'Personne_Id'";
$Res = mysql_query($Req);
....

En plus dans la clause where de ton update t'as mis _Type alors que dans ton select c'est Param_Type (bon apres je connais pas tes tables)


++

"Aucun de nous ne sait ce que nous savons tous, ensemble." Lao Tseu inventeur du "copier coller" [8D]

Merci ehmarc 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de ehmarc
sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention - 30 mars 2006 à 15:42
0
Merci
$Req = "UPDATE Parametres SET Param_Val = $Val_Param WHERE _Type = 'Personne_Id'";

il ne manque pas quelque chose ?
Commenter la réponse de sidf
kgadhi 122 Messages postés mardi 9 août 2005Date d'inscription 18 décembre 2007 Dernière intervention - 30 mars 2006 à 15:54
0
Merci
une faute de frape:$Req "UPDATE Parametres SET Param_Val $Val_Param WHERE Param_Type = 'Personne_Id'";

Et apparement ça a l'air de marcher donc je vais voir ou ça foire

Merci en tout cas
Commenter la réponse de kgadhi
sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention - 30 mars 2006 à 16:54
0
Merci
et là il ne manque pas un $
tu recuperes bien $Personne_id quelque part ?
$Req_Param "SELECT Param_Val FROM Parametres WHERE Param_Type '$Personne_Id' FOR UPDATE";

le FOR UPDATE ne me parait pas indispensable
pareil ici non ?$Req <gras>"UPDATE Parametres SET Param_Val '$Val_Param' WHERE Param_Type = '$Personne_Id'";</gras>
Commenter la réponse de sidf
kgadhi 122 Messages postés mardi 9 août 2005Date d'inscription 18 décembre 2007 Dernière intervention - 30 mars 2006 à 20:05
0
Merci
non il ne manque pas de $ parce que mon champ param_type c'est un string,
et le for update ça me permet de controler les identifant de mes tables
Commenter la réponse de kgadhi
sidf 1218 Messages postés mardi 20 décembre 2005Date d'inscription 18 octobre 2012 Dernière intervention - 30 mars 2006 à 20:08
0
Merci
ah ok alors ça marche ?
Commenter la réponse de sidf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.