Undefine Index???

Eléphanteau du PHP | 28 Messages

08 oct. 2005, 16:05

Bonjour.

J'ai un léger soucis avec un code. Voilà le même code, je l'exécute sur une base simple de 2 fichiers dans un projets perso, et ça fonctionne parfaitement.
Là j'essaie de le faire tourner sur une base un peu plus grosse (OSCommerce) et les requetes sont bonnes puisque je les tapes en premier directement sur MySQL.

Par contre l'exécution du code qui va suivre me dit ceci :

Notice: Undefined index: D1.categories_name in c:\program files\easyphp1-8\www\creload6\templates\thema\boxes\menu.php on line 36
mv2_menu[0] = ''; mv2_lien[0] = '';
Notice: Undefined index: C1.categories_id in c:\program files\easyphp1-8\www\creload6\templates\thema\boxes\menu.php on line 40



Code : Tout sélectionner

<? //include('../config.inc.php'); //connexion à la base $link = mysql_connect('localhost','root','') or die('Erreur de connexion à la base : '.mysql_error()); mysql_select_db('Creload6') or die('Erreur 2:'.mysql_error()); //Recherche du nombre de SERVICES $rqt = 'SELECT COUNT(CATEGORIES_ID) FROM categories WHERE PARENT_ID=0'; $result = mysql_query($rqt,$link) or die('Erreur d\'exécution de la requête de comptage :'.mysql_error()); $row = mysql_fetch_row($result); $total = $row[0]; //Recherche des libellés des SERVICES $rqt ='SELECT C1.categories_id,D1.categories_name '; $rqt .='FROM categories as C1,categories_description as D1 '; $rqt .='WHERE D1.categories_id = C1.categories_id AND D1.language_id=1 AND C1.parent_id=0 '; $result = mysql_query($rqt,$link) or die('Erreur d\'exécution de la requête des libellés : '.mysql_error()); echo '<DIV ID=mv2></DIV>',"\n"; echo '<SCRIPT LANGUAGE="JavaScript">',"\n"; //echo "document.write('<STYLE TYPE=\"text/css\">\na.mv2style {color:#FFFFFF;text-decoration:none;}\na:hover.mv2style {color:;text-decoration:underlined;}\n</STYLE>');","\n"; echo 'mv2_menu = new Array();',"\n"; echo 'mv2_lien = new Array();',"\n"; //si on a récupéré un résultat on l'affiche $indice1 = 0; if ($total) { //début du tableau while($row =mysql_fetch_array($result)) { //préparations de la liste des services echo "mv2_menu[".$indice1."] = '".$row['D1.categories_name']."';","\n"; echo "mv2_lien[".$indice1."] = '';","\n"; //Recherche du nombre de personnes par service $rqt2 = 'SELECT COUNT(categories_id) FROM categories WHERE parent_id = '.$row['C1.categories_id']; $result2 = mysql_query($rqt2,$link) or die('Erreur d\'exécution de la requête de comptage de personnes:'.$rqt2); $row2 = mysql_fetch_row($result2); $total2 = $row2[0]; //Recherche des nom de personnes $rqt2 ='SELECT C2.categories_id,D2.categories_name '; $rqt2 .='FROM categories as C2,categories_description as D2 '; $rqt2 .='WHERE D2.categories_id = C2.categories_id AND D2.language_id=1 AND C2.categories_id = '.$row['C1.CATEGORIES_ID']; $result2 = mysql_query($rqt2,$link) or die('Erreur d\'exécution de la requête des nom : '.mysql_error()); //si on a récupéré un résultat on l'affiche $indice2 = 0; if ($total2) { //début du tableau while($row2 =mysql_fetch_array($result2)) { $indice2++; echo "mv2_lien[".$indice1."] += '<A HREF=\"#\" CLASS=mv2style>".$row2['D2.categories_name']."</A><BR>';","\n"; } } mysql_free_result($result2); $indice1++; } } mysql_free_result($result);
[/code]
Peace on Earth

Eléphanteau du PHP | 28 Messages

08 oct. 2005, 16:16

J'ai résolu mon problème en remplaçant le nom de mes colonnes par leur indice. C'est couillon car avec mon autre petite base je n'ai pas ce problème.

@+
Peace on Earth

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 oct. 2005, 17:48

SAlut, si ça marche tant mieux , j'ai pas trop compris ce que tu as changé mais le problème venait de la:
$row['D1.categories_name']
$row['C1.categories_id']
a remplacer par
$row['categories_name']
$row['categories_id']
meme si la requete se fait avec des alias pas besoin de les appeler dans le résulat.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute