Requête mysql erronée ?
Résolu
cafe
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un doute sur une requête mysql, qui fonctionnait bien hier matin en me renvoyant les données attendues, mais qui à présent ne fonctionne plus... J'ai beau chercher je ne vois pas pourquoi ya problème maintenant.
1. $stock devient undefined index. Si je le remplace par $data['prods_stock'], je n'ai plus undefinied index, mais je n'ai que le message correspondant à $stock_insuffisant qui s'affiche, et ce avec $stock qui renvoie ' '.
Les autres messages ne s'affichent pas, bien que les quantités soient épuisées ou en stock ou en stock faible selon l'article choisi. Hier tout s'affichait correctement. Quelle est mon ereur SVP ? :)
Merci de votre aide.
J'ai un doute sur une requête mysql, qui fonctionnait bien hier matin en me renvoyant les données attendues, mais qui à présent ne fonctionne plus... J'ai beau chercher je ne vois pas pourquoi ya problème maintenant.
1. $stock devient undefined index. Si je le remplace par $data['prods_stock'], je n'ai plus undefinied index, mais je n'ai que le message correspondant à $stock_insuffisant qui s'affiche, et ce avec $stock qui renvoie ' '.
Les autres messages ne s'affichent pas, bien que les quantités soient épuisées ou en stock ou en stock faible selon l'article choisi. Hier tout s'affichait correctement. Quelle est mon ereur SVP ? :)
Merci de votre aide.
$afficher_infos_prods=("SELECT * FROM prods WHERE prods_souscat='fil à coudre' AND prods_coloris='".$_POST['coloris']."' AND prods_longueur='".$_POST['longueur_fil']."' ") or die(mysql_error() ); $result=mysql_query($afficher_infos_prods);
while($data = mysql_fetch_assoc($result) )
{$coloris = htmlspecialchars($data['prods_coloris']);
$longueur = htmlspecialchars($data['prods_longueur']);
$prix = htmlspecialchars($data['prods_prix']);
$stock = htmlspecialchars($data['prods_stock']);
}
if ($stock < 0)
{$epuise = ' Stock épuisé. ';}
else if ($_POST['quantite_fil'] > $stock)
{$stock_insuffisant = " Attention, seulement '".$stock."' pièces sont disponibles dans l'immédiat ";}
else if ($stock < 11)
{$low_stock = ' Attention, dernières pièces en stock ! ';}
else {$stock_ok = ' En stock !'; }
A voir également:
- Requête mysql erronée ?
- Mysql community server - Télécharger - Bases de données
- Mysql error 2002 ✓ - Forum Linux / Unix
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Erreur dimension erronée ti 83 - Forum calculatrices
3 réponses
Hello, je vais encore préciser ma recherche, mais j'ai un petit doute sur quelque chose.
ligne #1 : tu stock ta requête dans une variable
ligne #2 : tu exécute ta requête en appelant mysql_query($tavariable);
Le or die(mysql_error()) ce met après la fonction mysql_query(); donc à ta ligne 2 et non à la ligne #1.
je ne pourrais te dire si c'est la cause de ton problème.
Au niveau syntaxique tous me semble correct
Effectue ce petit test et donne nous des news la dessus. je vais continuer à chercher de mon côté
ligne #1 : tu stock ta requête dans une variable
ligne #2 : tu exécute ta requête en appelant mysql_query($tavariable);
Le or die(mysql_error()) ce met après la fonction mysql_query(); donc à ta ligne 2 et non à la ligne #1.
je ne pourrais te dire si c'est la cause de ton problème.
Au niveau syntaxique tous me semble correct
Effectue ce petit test et donne nous des news la dessus. je vais continuer à chercher de mon côté
J'ai répondu un peu vite, sorry.
Tu disais : si j'echo l'une de mes $data[''] à l'intérieur de ma while loop, j'ai des notifications undefined variables pour chacune d'elles. Pourtant elles sont correctement définies, non? What's the fff ?
Le truc c'est que hier ça s'affichait normalement, et plus maintenant... why?
Merci
Tu disais : si j'echo l'une de mes $data[''] à l'intérieur de ma while loop, j'ai des notifications undefined variables pour chacune d'elles. Pourtant elles sont correctement définies, non? What's the fff ?
Le truc c'est que hier ça s'affichait normalement, et plus maintenant... why?
Merci
Ce que je te propose c'est de faire quelque debug pour voir ou serait situé le problème.
donc fait une copie de ton code, car on va ajouter quelque echo et exit(); un peu partout :)
ce que je te propose c'est de placé le code suivant, juste avant la boucle while :
et ensuite, dans les première lignes te ta boucle while, place le code suivante :
à ce stade là on pourra constater si on récupère les bonnes valeurs depuis la base de donnée.
[edit] Maintenant que j'y repense, il serait possible que ta requête sql ne retourne rien, c'est pour cela que $stock serait undefined, fait le test tu me diras
donc fait une copie de ton code, car on va ajouter quelque echo et exit(); un peu partout :)
ce que je te propose c'est de placé le code suivant, juste avant la boucle while :
echo 'Nombre d\'entrée : '.mysql_num_rows().'<br/>';
et ensuite, dans les première lignes te ta boucle while, place le code suivante :
echo '<pre>';
print_r($data);
echo '</pre>';
exit();
à ce stade là on pourra constater si on récupère les bonnes valeurs depuis la base de donnée.
[edit] Maintenant que j'y repense, il serait possible que ta requête sql ne retourne rien, c'est pour cela que $stock serait undefined, fait le test tu me diras
lol lorsque je place
echo 'Nombre d\'entrée : '.mysql_num_rows().'<br/>';
juste avant ma while loop, et
echo '<pre>';
print_r($data);
echo '</pre>';
exit(); dans ma loop, ou même juste après
ben j'ai rien qui s'affiche... oops
echo 'Nombre d\'entrée : '.mysql_num_rows().'<br/>';
juste avant ma while loop, et
echo '<pre>';
print_r($data);
echo '</pre>';
exit(); dans ma loop, ou même juste après
ben j'ai rien qui s'affiche... oops
Ce que je pourrais te proposer pour la suite c'est de continuer sur un système de message un peu plus instantané
je sais que c'est contraire à l'optique d'un forum, mais on va pas SPAM, on pourra marquer le résultat dans le prochain poste :D
je pourrais te proposer d'allez sur ce petit chat : http://grafikart-chat.eu01.aws.af.cm/
Démo en live de Grafikart pour son tutoriel : https://www.grafikart.fr/tutoriels/socketio-tchat-366
ça nous permettra de parler directement :D
je sais que c'est contraire à l'optique d'un forum, mais on va pas SPAM, on pourra marquer le résultat dans le prochain poste :D
je pourrais te proposer d'allez sur ce petit chat : http://grafikart-chat.eu01.aws.af.cm/
Démo en live de Grafikart pour son tutoriel : https://www.grafikart.fr/tutoriels/socketio-tchat-366
ça nous permettra de parler directement :D
Merci pour ta remarque. Ok, j'intègre.
J'ai testé en mettant $result=mysql_query($afficher_infos_prods) or die (mysql_error()); mais $stock = htmlspecialchars($data['prods_stock']); reste undefined variable, et je ne vois aucun changement au niveau de l'affichage de mes messages $stock_ok, $stock_insuffisant, $epuise, etc..
Celui qui s'affiche reste $stock_insuffisant --> (Attention, seulement '' pièces sont disponibles dans l'immédiat) . Il ne dit pas combien de pièces en stock, alors que hier ça marchait !! ??
Où est mon erreur ?
Merci :)
- $data['prods_stock'] : ça t'affiche le nombre correctement ?
- $stock : ça t'affiche undefined ?
2ème petit test :
ton entrée prods_stock dans ta table est bien un int ?
essaie de ne pas mettre htmlspecialchars(); juste $stock = $data['prods_stock']
A+
Oui prods_stock est bien un INT.
J'ai déjà tenté et re retenté de remplacer ma var $stock par $data['prods_stock'], partout où j'ai des itérations de $stock.
Ex:
En faisant cela, effectivement ma undefined var $stock qui n'existe plus n'est plus dite undefined, je n'ai plus de notification, alors qu'elle était bien définie me semble-t-il !
$data['prods_stock'] seule passe bien, elle n'est pas undefined.
Mais le problème perdure : le seul message qui s'affiche même si j'ai 3000 pces en stock, c'est celui correspondant à $stock_insuffisant , c'est à dire " Attention, seulement '' pièces sont disponibles dans l'immédiat ". --> ".$data['prods_stock']."' encastrée dans $stock_insuffisant ne renvoie rien du tout. Alors que hier, ça m'indiquait 56 pces en stock, ou autre message selon l'état du stock.
Je n'ai pas d'autre notification d'erreur.
Any idea? :/ Thanks.