2013-09-27 55 views
1

在我的控制,我有以下代码:PHP分页查询不能

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; 
} 

当我回声$查询,我得到

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,我得到bool(false)。为什么我的查询没有返回正确的结果?

+0

错误查询的限制都要在年底... – Codesen

回答

1

您的查询正在添加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; 
} 
+0

@ user2773365,请让我知道这对你的作品。 – Pupil

+0

@ user2773365,如果这是解决您的问题,请考虑标记为解决方案。 – Pupil

+0

它的工作原理。谢谢! – user2773365

0

限制应在查询

$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(); 
0

结束分页查询看起来像

$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();