首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$variable在PHP MySQL极限中的应用

问$variable在PHP MySQL极限中的应用
EN

Stack Overflow用户
提问于 2017-03-31 14:46:42
回答 1查看 1.3K关注 0票数 1

这是我在php脚本中使用的当前代码。

代码语言:javascript
复制
$prodid = $_GET['id'];
$query = mysql_query("SELECT * FROM table1 WHERE productid = '$prodid' 
ORDER by amount DESC LIMIT 3");

我已经将限制设置为3。但我想定义类似于' $count‘的东西,$count的值应该从MySQL查询中获取,即

代码语言:javascript
复制
$count = mysql_query("SELECT count FROM table1 WHERE productid = '$prodid'");

有关“$prodid”的限制必须改变。像这样,

代码语言:javascript
复制
mysql_query("SELECT * FROM table1 WHERE productid = '$prodid' 
ORDER by amount DESC LIMIT '$count'");
EN

回答 1

Stack Overflow用户

发布于 2017-03-31 15:00:20

几件事。

First,您将使用此查询查找要获取的行数。

代码语言:javascript
复制
 "SELECT count FROM table1 WHERE productid = '$prodid'"

那应该说

代码语言:javascript
复制
 "SELECT COUNT(*) FROM table1 WHERE productid = '$prodid'"

以获得行数。

而且,它应该说

代码语言:javascript
复制
 "SELECT COUNT(*) FROM table1 WHERE productid = " . intval($prodid) 

为了避免sql注入(假设您的prodid值是整数)。

第二个,上面的查询返回一个一行结果集。你得读一读那一行。我不打算告诉你如何用mysql_来做这件事,因为现在只有傻瓜才会使用。,请使用PDO或mysqli_。

第三次,此查询

代码语言:javascript
复制
"SELECT * FROM table1 WHERE productid = " . intval($prodid) . " ORDER by amount DESC"

始终返回上一次查询所需的行数。因此,在给出的示例中,您的LIMIT子句完全没有必要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43143555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档