SQL/PHP - Erreur affichage tableau

Petit nouveau ! | 3 Messages

19 nov. 2011, 15:37

Bonjour, tout d'abord je tiens à m'excuser pour le titre du sujet, mais je n'ai pas eu plus d'inspiration :-s

Je ne sais pas si cette question a déjà été traitée, mais je me lance tout de même:

<?

if(isset($_GET['classer']))
{
$classement = mysql_real_escape_string($_GET['classer']); //securise la variable	
$requete = "SELECT KL_products.label, KL_products.price, KL_products.picture ".
"FROM KL_products, KL_category ".
"WHERE KL_products.id_category = KL_category.idCategory AND KL_category.idCategory = '$category' ".
"ORDER BY $classement";
}

$result=mysql_query($requete,$connexion);

echo("<table border='0'>");
echo("<th>Name <a href=" .$_SERVER['PHP_SELF']. "?classer=label \"><img src=\"images/triangle.png\" /></a></th><th>Picture</th><th>Price <a href=" .$_SERVER['PHP_SELF']. "?classer=price \"><img src=\"images/triangle.png\" /></a></th>");
while($row=mysql_fetch_array($result))
	{
	echo("<tr><td>" .$row["label"]. "</td> 
	<td><img src='" .$row["picture"]. "' width='100' height='100'></td>
	<td>" .$row["price"]. "</td>
	<td>BASKET !</td></tr>");
	}
echo("</table>");

?>
L'affichage dans le tableau plante, je vois pas comment corriger le truc, un petit coup d'main svp =)

Mammouth du PHP | 19672 Messages

19 nov. 2011, 16:28

Salut,
sois plus complet dans ta question : que ton affichage plante, soit, mais tu obtiens quoi en lieu et place de ce que tu attendais ? Si c'est un message d'erreur, il sera beaucoup plus facile de t'indiquer le chemin vers la solution si on sait de quoi il retourne. Dans le temps, on a essayé la boule de cristal, mais elles ont été confisquées lors de la dernière inquisition :P
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

19 nov. 2011, 16:56

MDRRR, effectivement c'est pas très constructif de dire "ça plante"

Donc oui le problème vient aux lignes du tableau, et l'erreur est la suivante:

Notice: Undefined index: label in /home/etudiant/acoste03/ecommerce.old/All.php on line 42
Notice: Undefined index: picture in /home/etudiant/acoste03/ecommerce.old/All.php on line 43
Notice: Undefined index: price in /home/etudiant/acoste03/ecommerce.old/All.php on line 44

Et ça boucle jusqu'a la fin du while



Merci pour ton aide en tout cas ,)

ViPHP
xTG
ViPHP | 7331 Messages

19 nov. 2011, 17:04

Premièrement, dans le cas ou $_GET['classer'] n'existe pas ta variable $requete est non définie.
Enfin fais un var_dump($row) et tu auras un aperçu plus clair de ce qui est retourné en terme d'index et de valeur.

Quant à la boucle infinie je n'y crois pas trop, mysql_fetch_array() renvoie false s'il n'y a pas de n-uplet à renvoyer, ce qui te ferrai sortir de la boucle.
Ne serais-ce pas plutôt qu'il y a énormément de n-uplets ou bien d'un script en aval qui met énormément de temps à s'éxécuter (jusqu'au timeout) ?

Petit nouveau ! | 3 Messages

19 nov. 2011, 17:20

Salut,

Le var_dump($row) me renvoi un "boolean false"

Pour ce qui est d'avoir un script en aval, je n'ai strictement rien, donc je ne pense pas que ce soit cela.


Le problème est que tout ce que je met fonctionne quand je place dans chaque fichier php different, mais je voudrais tout mettre dans le meme fichier pour pouvoir faire un include.

Je sais pas si c'est clair...

[--]

EDIT:
<?

if(isset($_GET['classer']))
{
$classement = mysql_real_escape_string($_GET['classer']); //securise la variable	
$requete = "SELECT KL_products.label, KL_products.price, KL_products.picture ".
"FROM KL_products, KL_category ".
"WHERE KL_products.id_category = KL_category.idCategory AND KL_category.idCategory = '$category' ".
"ORDER BY $classement";
}

$result=mysql_query($requete,$connexion);

echo("<table border='0'>");
echo("<th>Name <a href=" .$_SERVER['PHP_SELF']. "?classer=KL_products.label \"><img src=\"images/triangle.png\" /></a></th><th>Picture</th><th>Price <a href=" .$_SERVER['PHP_SELF']. "?classer=KL_products.price \"><img src=\"images/triangle.png\" /></a></th>");
while($row=mysql_fetch_array($result))
	{
	echo("<tr><td>" .$row["label"]. "</td> 
	<td><img src='" .$row["picture"]. "' width='100' height='100'></td>
	<td>" .$row["price"]. "</td>
	<td>BASKET !</td></tr>");
	}
echo("</table>");

?>
Si je clique sur mes petits triangles (qui permettent de classer par prix/nom) mes requetes s'affichent correctement. Par contre, si je vais sur cette page via le menu, j'ai l'erreur

[--]
<?

if(isset($_GET['classer']))
{
$classement = mysql_real_escape_string($_GET['classer']); //securise la variable	
$requete = "SELECT KL_products.label, KL_products.price, KL_products.picture ".
"FROM KL_products, KL_category ".
"WHERE KL_products.id_category = KL_category.idCategory AND KL_category.idCategory = '$category' ".
"ORDER BY $classement";
}
else
$requete = "SELECT KL_products.label, KL_products.price, KL_products.picture ".
"FROM KL_products, KL_category ".
"WHERE KL_products.id_category = KL_category.idCategory AND KL_category.idCategory = '$category' ".
"ORDER BY 1";

$result=mysql_query($requete,$connexion);

echo("<table border='0'>");
echo("<th>Name <a href=" .$_SERVER['PHP_SELF']. "?classer=KL_products.label \"><img src=\"images/triangle.png\" /></a></th><th>Picture</th><th>Price <a href=" .$_SERVER['PHP_SELF']. "?classer=KL_products.price \"><img src=\"images/triangle.png\" /></a></th>");
while($row=mysql_fetch_array($result))
	{
	echo("<tr><td>" .$row["label"]. "</td> 
	<td><img src='" .$row["picture"]. "' width='100' height='100'></td>
	<td>" .$row["price"]. "</td>
	<td>BASKET !</td></tr>");
	}
echo("</table>");

?>
Apparemment l'oublie du else était responsable, problème réglé ,)

Merci pour votre aide =)