2015-12-21 41 views
-1

第一頁應該是1,但它的-1和下一頁應該是2,但它的0分頁下頁應該是2,但爲0

我怎樣才能使這項工作?我試圖編輯$頁面,但是當我這樣做時,if/else會變得更加奇怪。

我加入了整個代碼...

... 
$resultt= "SELECT * FROM users WHERE AND country='$okc' AND state='$oks'"; 

if(!empty($a1) && empty($a2)){ 
    $resultt .= " AND aar>="; 
    ... 
} 

有超過1 if語句。

  $result = mysqli_query($con,"$resultt"); 
     $rec_limit = 19; 
     $row = mysqli_fetch_array($result); 
     $rec_count = $row[0]; 

     if(isset($_GET['page'])) 
     { 
      $page = $_GET['page'] + 1; 
      $offset = $rec_limit * $page ; 
     } 
     else 
     { 
      $page = 0; 
      $offset = 0; 
     } 
     $left_rec = $rec_count - ($page * $rec_limit); 

     $resultt .= "LIMIT $offset, $rec_limit"; 
     $sql = $resultt; 

     $retval = mysqli_query($con, "$resultt"); 

     if($page > 0) 
     { 
      $last = $page - 1; 
      echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a> |"; 
      echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>"; 
     } 

     else if($page == 0) 
     { 
      echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>"; 
      } 

     else if($left_rec < $rec_limit) 
     { 
      $last = $page - 2; 
      echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a>"; 
     } 

while($row = mysqli_fetch_array($retval, MYSQL_ASSOC)) 
{ 

} 
+3

如果這是'php'你可能想改變'$ _GET {「頁面」}''到$ _GET [「頁」]' – Trix

回答

1

您應該更改部分代碼以使其正常工作。 $_GET['page']應該給你查詢的頁碼本身,所以不要試圖操縱它。

$sql = "SELECT * FROM users WHERE country='$okc' AND state='$oks'" 
$rec_limit = 10; 
$result = mysqli_query($con, $sql); 
$row = mysqli_fetch_array($result); 
$rec_count = $row[0]; 
$left_rec = $rec_count - ($rec_limit * $page); 


$page = isset($_GET['page']) ? intval($_GET['page']) : 1; 
$offset = $rec_limit * ($page - 1) ; 

$sql.= " LIMIT $rec_limit OFFSET $offset"; 
$result = mysqli_query($con, $sql); 

$row = mysqli_fetch_array($result); 

if($page > 1){ 
    $last = $page - 1; 
    echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a> |"; 
    echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>"; 
}else if($page == 1){ 
    echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>"; 
}else if($left_rec < $rec_limit){ 
    $last = $page - 2; 
    echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a>"; 
} 

while($row = mysqli_fetch_array($result, MYSQL_ASSOC)){ 

    // use $row to echo row contents ... 

} 
+0

時仍然得到了同樣的問題可以你在這裏添加一個解釋? –

+0

對不起,我會添加一些 – Trix

+0

$ next和$ last錯誤,當我這樣做和$行似乎不工作,因爲它應該 – anon

1

$ _GET是一個像你的$行一樣的數組。

訪問您始終使用[]的數組鍵。

改變你進入$ _GET [ '頁']

甚至更​​好:

$page = isset($_GET['page']) ? intval($_GET['page']) : 1; 

設置,那麼轉換價值爲int頁面,因爲你不知道什麼進來的。 如果沒有設置取第1頁。

btw。像這樣的結構:

$resultt = "LIMIT $offset, $rec_limit"; 

可以/會導致sql注入您的網頁內的錯誤! 永遠不會用變量建立一個sql! 改爲使用參數!

+0

編輯代碼到 – anon

相關問題