PHP 分页查询不起作用


PHP Pagination query not working

在我的控制器中,我有以下代码:

if($action=='shipping_list'){ 
    $numrows=inquire_row(); //Get number of rows in query
    $pages= new Paginator('10', 'p'); //create object
    $pages->set_total($numrows);
    $shipping=shipping_list(); //Goes to model
    include('shipping_list.php');
}

在我的模型中,这些代码:

function shipping_list(){
    global $MEMS;
    global $pages;
        $query = "SELECT * FROM Inventory" .$pages->get_limit()
        ."WHERE Yield >=320 AND (Q = 'Pass' OR Q='No Q') AND shipdate = ' '
        ORDER BY Wafer ASC, RC ASC";
        echo $query;
    $shipping = $MEMS -> query($query);
    var_dump($shipping);
    return $shipping;
}

当我回声$query时,我得到

SELECT * FROM Inventory LIMIT 0, 20 WHERE Yield >=320 AND (Q = 'Pass' OR Q='No Q') AND shipdate = ' ' ORDER BY Wafer ASC, RC ASC

所以我知道一切都很好。但是,当我var_dump $shipping时,我得到布尔(假)。为什么我的查询没有返回正确的结果?

您的查询在错误的位置添加了LIMIT标记。

LIMIT标签应该放在最后。

因此,您的查询应该是:

SELECT * FROM Inventory WHERE Yield >=320 AND (Q = 'Pass' OR Q='No Q') AND shipdate = ' ' ORDER BY Wafer ASC, RC ASC LIMIT 0, 20

将模型中的 SQL 修改为:

function shipping_list(){
    global $MEMS;
    global $pages;
        $query = "SELECT * FROM Inventory 
        WHERE Yield >=320 AND (Q = 'Pass' OR Q='No Q') AND shipdate = ' '
        ORDER BY Wafer ASC, RC ASC " .$pages->get_limit(); // ADD LIMIT tag at the end.
        echo $query;
    $shipping = $MEMS -> query($query);
    var_dump($shipping);
    return $shipping;
}

LIMIT 应该在查询的末尾

 $query = "SELECT * FROM Inventory WHERE Yield >=320 AND (Q = 'Pass' OR Q='No Q') AND shipdate = ' ' ORDER BY Wafer ASC, RC ASC ".$pages->get_limit();

>分页查询看起来像

$sql= "SELECT * FROM $tableName LIMIT $start, $limit";

您必须指定$start$limit

假设第一页上有 20 个结果。

$sql= "SELECT * FROM $tableName LIMIT 0, 20";

在您的情况下,它会变成类似的东西

$query = "SELECT * FROM Inventory WHERE Yield >=320 AND (Q = 'Pass' OR Q='No Q') AND shipdate = ' ' ORDER BY Wafer ASC, RC ASC ".$pages->get_limit();