2011-07-27 51 views
0

這裏是我的代碼:PHP SQL錯誤資源#6

//Connect to config file 
include(dirname(__FILE__)."/../config.php"); 
//Connect to the database 
$db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database."); 
mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database."); 

//Get Total Products 
$result = mysql_query("SELECT * FROM $dbProductsTable WHERE sub_cat = '$subcat'"); 
$TotalProducts = mysql_num_rows($result); 

//Create Pages 
if (TotalProducts <= 12){ 
    $pages = ''; 
}else{ 
    $pages = "     <ul id=\"pagination\" class=\"group\"> 
         <li><a class=\"current\" href=\"#\">1</a></li> 
         <li><a href=\"#\">2</a></li> 
         <li><a href=\"#\">3</a></li> 
         <li><a href=\"#\">4</a></li> 
        </ul>"; 
} 




//Get from sql info we need 
$sql = mysql_query("SELECT * FROM $dbProductsTable WHERE sub_cat = '$subcat' LIMIT 0 , 12"); 
$data = mysql_query($sql) or die(mysql_error()); 

//Make first letter UpperCase 
$subcatname = ucfirst($subcat); 
//Get Basket Count 
$basketcount = count($_COOKIE['products']); 

//Get All Products 
while($row = mysql_fetch_array($data)) 
{ 
//Get Product Path 
$productPath = $Domain.'/'.strtolower($row['category']).'/'.str_replace(" ","",$row['product_name']).'_'.$row['product_id']; 

//Build Products List 
$products = $products."  <li class=\"all-products-list-item\"> 
      <a href=\"$productPath\" title=\"{$row['product_name']}\"><img src=\"$ProductImageFolder{$row['thumb_image']}\" alt=\"{$row['product_name']}\" border=\"0\" height=\"245\" width=\"180\"/></a> 
      <h3><a href=\"$productPath\">{$row['product_name']}</a></h3> 
      <p>£{$row['price']}</p> 
     </li>\n"; 
} 

,這裏是錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #6' at line 1 

我已經嘗試運行它throught的phpmyadmin和SQL完美的作品,我不能找到問題是什麼?

感謝

+0

什麼約$ SUBCAT?宣言在哪裏 – Subdigger

回答

4

以下是錯誤:

//Get from sql info we need 
$sql = mysql_query("SELECT * FROM $dbProductsTable WHERE sub_cat = '$subcat' LIMIT 0 , 12"); 
$data = mysql_query($sql) or die(mysql_error()); 

將其更改爲

//Get from sql info we need 
$sql = "SELECT * FROM $dbProductsTable WHERE sub_cat = '$subcat' LIMIT 0 , 12"; 
$data = mysql_query($sql) or die(mysql_error()); 

您正在運行一個查詢與$sql = mysql_query(...),並分配資源給變量$sql。在此之後,您嘗試運行變量$sql作爲參數的查詢。此時$sql將包含資源,而不是查詢。

0
$result = mysql_query("SELECT * FROM $dbProductsTable WHERE sub_cat = '$subcat'"); 

$sql = "SELECT * FROM $dbProductsTable WHERE sub_cat = '$subcat'"; 
var_dump($sql); 
$result = mysql_query($sql); 

替換此認爲這有助於

編輯:

什麼做到這一點:

$db = mysql_connect("$dbHost", "$dbUser", "$dbPass"); 

這樣寫:

$db = mysql_connect($dbHost, $dbUser, $dbPass); 
-1

SELECT * FROM $dbProductsTable

PHP看到一個PHP變量這裏是取代它的價值(在這種情況下,$ DB)

SQL實體標識符應該遵循命名約定 - 命名約定它允許表名以字母以外的任何字符開頭是一個壞主意,它們應該只包含字母和數字。

嘗試:

mysql_query("SELECT * FROM `\$dbProductsTable` 
    WHERE sub_cat = '$subcat' LIMIT 0 , 12");