PHP & MYSQL Update - Problème de variables
Fermé
bogus01
Messages postés
5
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
26 avril 2011
-
25 avril 2011 à 21:07
coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 - 26 avril 2011 à 18:48
coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 - 26 avril 2011 à 18:48
A voir également:
- PHP & MYSQL Update - Problème de variables
- Windows update 0x80070643 - Guide
- Windows update bloqué - Guide
- Easy php - Télécharger - Divers Web & Internet
- Asus live update - Télécharger - Utilitaires
- Mysql community server - Télécharger - Bases de données
9 réponses
coeus
Messages postés
3021
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
119
25 avril 2011 à 22:24
25 avril 2011 à 22:24
Salut !
As-tu essayé de rentrer seulement la commande SQL dans MySQL (ou peu importe ce que tu utilises) ? Il peut te sortir un message d'erreur s'il y en a une...
As-tu essayé de rentrer seulement la commande SQL dans MySQL (ou peu importe ce que tu utilises) ? Il peut te sortir un message d'erreur s'il y en a une...
bogus01
Messages postés
5
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
26 avril 2011
26 avril 2011 à 00:47
26 avril 2011 à 00:47
Oui, et c'est correcte quand je met la commande dans MySQL.
boly38
Messages postés
267
Date d'inscription
mercredi 23 février 2011
Statut
Membre
Dernière intervention
29 septembre 2016
80
26 avril 2011 à 11:39
26 avril 2011 à 11:39
hello,
2 petites questions pour mieux comprendre :
- "inner join" me semble inadapté pour cet update : est-ce que 'products_description' est une table ou bien une colonne ?
- "$id" ne correspondrait-il pas plutôt à products.products_id (et pas model) ?
2 petites questions pour mieux comprendre :
- "inner join" me semble inadapté pour cet update : est-ce que 'products_description' est une table ou bien une colonne ?
- "$id" ne correspondrait-il pas plutôt à products.products_id (et pas model) ?
bogus01
Messages postés
5
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
26 avril 2011
26 avril 2011 à 16:18
26 avril 2011 à 16:18
Je n'ai pas le choix pour le "inner Join" puisque ce sont 2 tables qui doivent être lié pour obtenir le bon résultat. Les tables "products" et "products_description"
Non le "$id" ne correspond pas au products.products_id.
Comme je l'ai mentionner, la requete d'update fonctionne dans le cas suivant:
Si je met : $desc = '123';
Le résultat est : Requete update correcte
Si j'utilise le résultat de la fonction : $desc = get_desc($id) qui elle retourne '123', à ce moment la requete update ne renvoi rien.
Pourtant "$desc" donne le même résultat...
Non le "$id" ne correspond pas au products.products_id.
Comme je l'ai mentionner, la requete d'update fonctionne dans le cas suivant:
Si je met : $desc = '123';
Le résultat est : Requete update correcte
Si j'utilise le résultat de la fonction : $desc = get_desc($id) qui elle retourne '123', à ce moment la requete update ne renvoi rien.
Pourtant "$desc" donne le même résultat...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
coeus
Messages postés
3021
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
119
26 avril 2011 à 16:23
26 avril 2011 à 16:23
Si tu mets $id = '123'; au lieu de $id = $_GET['pid']; est-ce que ça marche ?
boly38
Messages postés
267
Date d'inscription
mercredi 23 février 2011
Statut
Membre
Dernière intervention
29 septembre 2016
80
26 avril 2011 à 16:34
26 avril 2011 à 16:34
quel est le type de la colonne products_model ?
si c'est du texte alors peut être essayer avec un LIKE à la place du signe égal :
si c'est du texte alors peut être essayer avec un LIKE à la place du signe égal :
(...) " WHERE products.products_model LIKE '$id' " (...)
bogus01
Messages postés
5
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
26 avril 2011
26 avril 2011 à 17:23
26 avril 2011 à 17:23
coeus : Lorsque je regarde le resultat du "echo $id;" la valeur est la bonne. Et pour votre compréhension. La fonction "getdesc()" provient d'un autre page PHP. Et elle me retourne une description qui elle est lié à un numero de pièce qui est $id...
La fonction "getdesc($nomdelavariable)" est correcte puisque je l'utilise dans d'autre page sans problème et dans le même contexte.
Donc $id récupère le numero de pièce via l'URL
Ensuite j'envoie le numero à la fonction getdesc($id) qui elle me retourne une description et la stock dans la variable $desc
Et ensuite je "veux" mettre à jour la description dans la requete MYSQL... et c'est là que ca ne fonctionne pas.
Pourtant lorsque je regarde le resultat de "echo $desc" la variable à le contenu désiré...mais la requete ne l'execute pas.
Et si je force "$desc = 'peu importe la description';" alors là la requète fonctionne.
Mais pourquoi une variable qui provient d'une fonction n'est pas interprété de la même façon ? Est-ce que je dois définir autre chose ?
La fonction "getdesc($nomdelavariable)" est correcte puisque je l'utilise dans d'autre page sans problème et dans le même contexte.
Donc $id récupère le numero de pièce via l'URL
Ensuite j'envoie le numero à la fonction getdesc($id) qui elle me retourne une description et la stock dans la variable $desc
Et ensuite je "veux" mettre à jour la description dans la requete MYSQL... et c'est là que ca ne fonctionne pas.
Pourtant lorsque je regarde le resultat de "echo $desc" la variable à le contenu désiré...mais la requete ne l'execute pas.
Et si je force "$desc = 'peu importe la description';" alors là la requète fonctionne.
Mais pourquoi une variable qui provient d'une fonction n'est pas interprété de la même façon ? Est-ce que je dois définir autre chose ?
Bonjour
Suggestion : puisque ta requête ne semble pas marcher de la même manière dans le script et 'à la main', vérifier d'abord si elle est correcte pour le script :
$Recordset1 = mysql_query($query) or die (mysql_error());
D'autre part, l'intérêt d'utiliser un sprintf pour créer ta requête m'échappe complètement, c'est même une source de problèmes s'il y a des '%' dans tes variables
Suggestion : puisque ta requête ne semble pas marcher de la même manière dans le script et 'à la main', vérifier d'abord si elle est correcte pour le script :
$Recordset1 = mysql_query($query) or die (mysql_error());
D'autre part, l'intérêt d'utiliser un sprintf pour créer ta requête m'échappe complètement, c'est même une source de problèmes s'il y a des '%' dans tes variables
bogus01
Messages postés
5
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
26 avril 2011
26 avril 2011 à 18:25
26 avril 2011 à 18:25
le père : Avec "$Recordset1 = mysql_query($query) or die (mysql_error());" j'obtiens le même résultat.
Si je force la variable, ca marche. Si je laisse la variable recevoir le contenu de la fonction, pas de mise-à-jour.
Pour le sprintf, je l'ai essayer en remplacant la requete par : $query = "UPDATE products inner join products_description SET products_description = '$desc' WHERE products.products_model = '$id' AND products.products_id = products_description.products_id";
et j'ai le même résultat!
Si je force la variable, ca marche. Si je laisse la variable recevoir le contenu de la fonction, pas de mise-à-jour.
Pour le sprintf, je l'ai essayer en remplacant la requete par : $query = "UPDATE products inner join products_description SET products_description = '$desc' WHERE products.products_model = '$id' AND products.products_id = products_description.products_id";
et j'ai le même résultat!
coeus
Messages postés
3021
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
119
26 avril 2011 à 18:48
26 avril 2011 à 18:48
Si je force la variable, ca marche.
On parle toujours de forcer $id ici, pas de forcer $desc ?
Si c'est le cas, ben tu as ta solution : $id reçoit mal le $_GET['pid'], et donc la fonction get_desc() ne peut pas faire son travail si elle reçoit en argument une variable fautive ?
On parle toujours de forcer $id ici, pas de forcer $desc ?
Si c'est le cas, ben tu as ta solution : $id reçoit mal le $_GET['pid'], et donc la fonction get_desc() ne peut pas faire son travail si elle reçoit en argument une variable fautive ?