2012-05-17 3 views
1

Je ne peux pas comprendre pourquoi je reçois le message d'erreur, j'ai essayé de supprimer le '' et le()ERREUR SQL mysql_fetch_array(): non valide?

J'ai exécuté le script dans phpmyadmin et il dit que le problème avec ma syntaxe est à $ result = ("SELECT * FROM 'test_prefixCatagory' ORDER par 'Cat'");

$result = ("SELECT * FROM 'test_prefixCatagory' ORDER by 'Cat'"); 


while($row = mysql_fetch_array($result)) 

$sCat = ($row['Cat']); 
$sCatID = ($row['CatID']); 
{ 
echo "<table>"; 
echo "<tr valign='top'><td><b><a href='#".$sCat."'>".$sCat."</a></b><br>"; 
// column 1 categories 
$result2 = ("SELECT * FROM `test_prefixSubCat` WHERE `CatID`=$sCatID"); 
// sub-cats 
while($row2 = mysql_fetch_array($result2)) 
    { 
    $sSub = ($row2['CatID']); 
    $sSubID = ($row2['SubID']); 
    echo "<dd><a href='#'>".$sSub."</a><br>"; 

} 

echo "<br></td></tr>"; 
echo "</table>"; 
} 

Quelqu'un a-t-il une idée?

+0

Vous ne devriez plus écouter celui qui vous a dit de mettre des crochets autour de tout comme '($ row2 ['CatID'])'. – MrCode

Répondre

1

Essayez ceci:

<?php 
$result = mysql_query("SELECT * FROM `test_prefixCatagory ORDER by `Cat`"); 

while ($row = mysql_fetch_array($result)) { 
$sCat = $row['Cat']; 
$sCatID = $row['CatID']; 
echo "<table>"; 
echo "<tr valign='top'><td><b><a href='#" . $sCat . "'>" . $sCat . "</a></b><br>"; 
// column 1 categories 
$result2 = mysql_query("SELECT * FROM `test_prefixSubCat` WHERE `CatID`='".$sCatID. "'"); 
// sub-cats 
while ($row2 = mysql_fetch_array($result2)) { 
    $sSub = $row2['CatID']; 
    $sSubID = $row2['SubID']; 
    echo "<dd><a href='#'>" . $sSub . "</a><br>"; 

    } 

     echo "<br></td></tr>"; 
     echo "</table>"; 
} 
?> 
+1

effectivement les deux résultats doivent être corrigés selon la suggestion de d4rkpr1nc3 – andrew

+0

oui, désolé, j'ai arrêté de regarder après avoir vu la première ligne – d4rkpr1nc3

+0

J'ai encore essayé et je reçois toujours les mêmes résultats :( – Marinus

0
 
$result = ("SELECT * FROM `test_prefixCatagory` ORDER by `Cat`"); 
+0

le caractère "' "n'est nécessaire que lorsque les tables ou les noms de colonnes sont des mots-clés sql (valeurs, relations, clés, lignes, colonnes, ordre, etc.). – d4rkpr1nc3

+0

oui c'est fortement nécessaire en cas de mots-clés, mais inoffensif du tout – triclosan

0

Non seulement avez-vous besoin d'ajouter mysql_query mais vous devez également supprimer les guillemets simples du nom de la table et le nom du champ. Vous pouvez utiliser des guillemets si vous le souhaitez mais pas des guillemets simples autour des noms de table.

$result = mysql_query("SELECT * FROM `test_prefixCatagory` ORDER by `Cat`"); 

// other query: 
$result2 = mysql_query("SELECT * FROM `test_prefixSubCat` WHERE `CatID`=$sCatID"); 

Lorsque le débogage des problèmes MySQL, utilisez mysql_error() pour voir une description du problème.