2013-09-27 41 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();