在PHP MySQL LIMIT中使用$ variable

时间:2017-03-31 14:46:43

标签: php mysql mysqli limit offset

这是我目前在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'");

1 个答案:

答案 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_请使用PDOmysqli_

第三次,此查询

"SELECT * FROM table1 WHERE productid = " . intval($prodid) . " ORDER by amount DESC"

始终返回您之前查询所需的行数。因此,在您给出的示例中,您的LIMIT条款完全没有必要。