Héhé je profites de mon premier jour au sein de votre sympathique communauté pour faire le malin.
Alors moi je dis, debugger un programme est un art. Un art laborieux certe mais un art dont les bases sont très simple à intégrer. En gros il faut que tu parviennes à voir ce que fait ton script étape par étape et pour ça rien de mieux que des "echo" partout.
Problème : mon script fonctionne pas.
Solution : (ouais je suis assez pour les exemple didactique)
1) Identifier l'endroit où ça pose problème.
=> En l'occurence tu as trouvé puisque tu identifies ce satané IF.
2) Ensuite rien de bien méchant, je blinde mon code de "echo" pour voir ce qui se passe et en théorie je dois comprendre le pourquoi du comment.
=> Ici ça donnerait à vue de nez.
switch ($donnee){
case "./objet/rien.gif":
$sql = mysql_query("SELECT qstock1 FROM membres WHERE id = ". $id .";") or die(mysql_error());
$row = mysql_fetch_object($sql);
echo "DEBBUG - sql = " . "SELECT qstock1 FROM membres WHERE id = ". $id .";" ;
$data = $row->qstock1;
echo "DEBBUG - data = " . $data ;
if ($data>'10') {
echo "DEBBUG - je suis dans le IF " ;
echo '<center><font color="red">Le stock de destination est (ou va etre) déjà au maximum.
<br>Il vous faut 1 autre objet pour pouvoir stocker plus. </font></center>
<center><font color="black"><a href="affichestock1.php">retour page précédente</a></font></center>';
}
else {
echo "DEBBUG - je suis dans le ELSE " ;
...
}
=> Avec ça tu auras normalement au moins affiché ta requête sql que tu pourras rejouer sur ta base de donnée en direct pour voir ce que ça ramène. Et en plus tu veras si tu passes dans le IF ou dans le ELSE et la valeur qu'à pris ta variable $data.
A noter que le conseil de Shidame doit être absolument suivit. Soit $data est un chiffre et alors tu retires les cotes sur ton 10. Soit c'est une chaine de caractères et alors il faut utiliser une fonction pour comparer deux chaines ... :heuuu: strcmp() je crois ...
En espérant avoir pu t'être utile :roll:
Alors moi je dis, debugger un programme est un art. Un art laborieux certe mais un art dont les bases sont très simple à intégrer. En gros il faut que tu parviennes à voir ce que fait ton script étape par étape et pour ça rien de mieux que des "echo" partout.
Problème : mon script fonctionne pas.
Solution : (ouais je suis assez pour les exemple didactique)
1) Identifier l'endroit où ça pose problème.
=> En l'occurence tu as trouvé puisque tu identifies ce satané IF.
2) Ensuite rien de bien méchant, je blinde mon code de "echo" pour voir ce qui se passe et en théorie je dois comprendre le pourquoi du comment.
=> Ici ça donnerait à vue de nez.
switch ($donnee){
case "./objet/rien.gif":
$sql = mysql_query("SELECT qstock1 FROM membres WHERE id = ". $id .";") or die(mysql_error());
$row = mysql_fetch_object($sql);
echo "DEBBUG - sql = " . "SELECT qstock1 FROM membres WHERE id = ". $id .";" ;
$data = $row->qstock1;
echo "DEBBUG - data = " . $data ;
if ($data>'10') {
echo "DEBBUG - je suis dans le IF " ;
echo '<center><font color="red">Le stock de destination est (ou va etre) déjà au maximum.
<br>Il vous faut 1 autre objet pour pouvoir stocker plus. </font></center>
<center><font color="black"><a href="affichestock1.php">retour page précédente</a></font></center>';
}
else {
echo "DEBBUG - je suis dans le ELSE " ;
...
}
=> Avec ça tu auras normalement au moins affiché ta requête sql que tu pourras rejouer sur ta base de donnée en direct pour voir ce que ça ramène. Et en plus tu veras si tu passes dans le IF ou dans le ELSE et la valeur qu'à pris ta variable $data.
A noter que le conseil de Shidame doit être absolument suivit. Soit $data est un chiffre et alors tu retires les cotes sur ton 10. Soit c'est une chaine de caractères et alors il faut utiliser une fonction pour comparer deux chaines ... :heuuu: strcmp() je crois ...
En espérant avoir pu t'être utile :roll: