这是我的代码:
//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
我试过通过phpmyadmin运行它并且sql工作完美,我无法找到问题所在?
由于
答案 0 :(得分: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
将包含资源,而不是查询。
答案 1 :(得分: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);
答案 2 :(得分:-1)
SELECT * FROM $ dbProductsTable
PHP在这里看到一个PHP变量并替换它的值(在这种情况下为$ db)
SQL实体标识符应遵循命名约定 - 允许表名以字母以外的任何内容开头的命名约定是个坏主意,它们应该只包含字母和数字。
尝试:
mysql_query("SELECT * FROM `\$dbProductsTable`
WHERE sub_cat = '$subcat' LIMIT 0 , 12");