使用$变量极限
问题描述:
这是我使用PHP脚本里面这我当前的代码。
$prodid = $_GET['id'];
$query = mysql_query("SELECT * FROM table1 WHERE productid = '$prodid'
ORDER by amount DESC LIMIT 3");
我设置的上限为3。但是,我想定义的东西,如“$计数”和$计值应该从MySQL查询即
$count = mysql_query("SELECT count FROM table1 WHERE productid = '$prodid'");
极限中获取必须改变'$ prodid'。像这样,
mysql_query("SELECT * FROM table1 WHERE productid = '$prodid'
ORDER by amount DESC LIMIT '$count'");
答
有几件事。
第一个,您正在使用此查询来查找要提取的行数。
"SELECT count FROM table1 WHERE productid = '$prodid'"
应该说
"SELECT COUNT(*) FROM table1 WHERE productid = '$prodid'"
为了得到行数。
而且,它应该说
"SELECT COUNT(*) FROM table1 WHERE productid = " . intval($prodid)
避免SQL注入(假设你的prodid
值是整数)。
二,上述查询还给1列的结果集。你需要真正阅读那一行。我不会告诉你怎么做,用mysql_
因为只有傻瓜使用mysql_
这些天。请使用PDO
或mysqli_
。
三,这个查询
"SELECT * FROM table1 WHERE productid = " . intval($prodid) . " ORDER by amount DESC"
总是返回行以前的查询想要的数量。因此,在你给出的例子中,你的LIMIT
子句是完全不必要的。
+0
好!如果count是table1中的列名,并且每个productid都有不同的计数值,例如对于productid = 1,计数为3,对于prodcutid = 2,计数为6,如果$为$,我想获取3个结果PRODID = 1,同样,如果6个结果$ PRODID = 2 如何可以查询? – vijay9066
是不是总是要的记录,其中的productid = X是多少?如果count等于10,然后您执行相同的查询限制10,为什么要使用它?如果你指定了限制,它将会是10条记录。 – mkaatman
首先,您正在使用mysql_ - 一个不推荐的,不安全的数据库处理程序。使用mysqli_或PDO。其次,您直接从URL获取用户定义的变量,并将其放入查询中。使用mysql_query。你想要你的数据库被删除?让我和说明:https://imgs.xkcd.com/comics/exploits_of_a_mom.png – junkfoodjunkie
'LIMIT“$ count'' =>'LIMIT $ count'。并确保它是一个整数。 – Qirel