gpt4 book ai didi

Mysql:查询 "WHERE...IN"、 "ORDER BY..."和 "LIMIT"中可能出现错误

转载 作者:行者123 更新时间:2023-11-29 08:30:51 24 4
gpt4 key购买 nike

正如您所观察到的,我为这个问题起了一个不明确的标题,因为我不知道(由于缺乏深入的知识)这是否是真正的问题。

让我们从简短的描述开始:

这是我选择产品的地方:

    $select_prod = "SELECT * FROM product WHERE product_id IN ($some_array)";

之后,这是我定义分页内容的地方:

    $query_page = mysql_query($select_prod);
$product_total = mysql_num_rows($query_page);

$page_rows = 4;
$last = ceil($product_total/$page_rows);
if ($page < 1) {
$page = 1;
} elseif ($page > $last) {
$page = $last;
}
$limit = 'limit ' .($page - 1) * $page_rows .',' .$page_rows;

以及我准备渲染的地方

    $page_query = mysql_query($select_prod . $limit);   
$results = array();
while ($array_filter = mysql_fetch_array($page_query)) {
$results[] = $array_filter;
}

到目前为止,一切都很顺利,我的产品按照我想要的方式列出,但按随机顺序排列。

我尝试在第一个查询的末尾包含“ORDER BY Price ASC”,如下所示:

    $select_prod = "SELECT * FROM product WHERE product_id IN ($some_array) ORDER BY price ASC";

但由于奇怪的原因未能列出带有错误的产品:

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given...

我已经花了几个小时试图找出问题所在,这个论坛似乎是我最后的尝试,之后我会让他们按照他们想要的方式订购。

最佳答案

您确实需要在执行之前直接打印出完整的查询。试试这个:

$select_prod = "SELECT * FROM product WHERE product_id IN ($some_array) ORDER BY price ASC ";

或者,更改 limit 行,在 limit 之前添加一个空格。

我认为问题是 limit 之前缺少空间。 ()limit 100 中的代码段是有效的 SQL。 () order by Price asclimit 100 中的代码段不是有效的 SQL。

关于Mysql:查询 "WHERE...IN"、 "ORDER BY..."和 "LIMIT"中可能出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com