这是我目前在PHP脚本中使用的代码。
$prodid = $_GET['id'];
$query = mysql_query("SELECT * FROM table1 WHERE productid = '$prodid'
ORDER by amount DESC LIMIT 3");
我已将LIMIT设为3.但我想定义类似' $ count' $ count的值应该从MySQL查询中获取,即
$count = mysql_query("SELECT count FROM table1 WHERE productid = '$prodid'");
LIMIT必须相对于' $ prodid'而改变。像这样,
mysql_query("SELECT * FROM table1 WHERE productid = '$prodid'
ORDER by amount DESC LIMIT '$count'");
答案 0 :(得分:1)
一些事情。
首先,您正在使用此查询来查找要提取的行数。
"SELECT count FROM table1 WHERE productid = '$prodid'"
应该说
"SELECT COUNT(*) FROM table1 WHERE productid = '$prodid'"
以获取行数。
并且应该说
"SELECT COUNT(*) FROM table1 WHERE productid = " . intval($prodid)
避免sql注入(假设你的prodid
值是整数)。
第二,上面的查询返回一行结果集。你需要实际读取该行。我不打算使用mysql_
告诉您如何执行此操作,因为这些天只有傻瓜使用mysql_
。请使用PDO
或mysqli_
。
第三次,此查询
"SELECT * FROM table1 WHERE productid = " . intval($prodid) . " ORDER by amount DESC"
始终返回您之前查询所需的行数。因此,在您给出的示例中,您的LIMIT
条款完全没有必要。