2012-07-18 114 views
0
$nav_next_id = $page_id + 1; 

$sql = "SELECT page FROM plm WHERE id = '$nav_next_id'"; { 
$result = mysql_query($sql); 
while ($next_page = mysql_fetch_array($result)) 
{ 
    if($page_id + 1 > 24) 
    { 
    $goto_next_page = 'some_page.php'; 
    } 
    else 
    { 
    $goto_next_page = $next_page['page_title'];  
    } 
} 
} 

基本上是一個簡單的網站上非常直接的下一頁按鈕。使用MYSQL表中的ID,我可以確定當前頁面的下一頁。PHP- if else語句不起作用?

所有的作品都很好,直到我來到最後一頁。這是第24頁。

所以我把一個if在循環中說,如果頁面> 24轉到some_page.php。

我在我的html中呼應$goto_next_page

然而,第24頁沒有任何迴應,所有其他頁面都正常工作。這個腳本有什麼問題?

---------更新----------------這是我如何才能工作------------ ------

if($cur_page_id == 24) 
{ 
$goto_next_page = 'some_page.php'; 
} 
else 
{ 
$sql = "SELECT page FROM plm WHERE id = '$nav_next_id'"; { 
$result = mysql_query($sql); 
while ($next_page = mysql_fetch_array($result)) 
    { 
     $goto_next_page = $next_page['page_title']; 
    } 
} 
} 

回答

2

也許你的意思是使用pre-increment operator

if(++$page_id > 24) 

實際上,這意味着:

$page_id = $page_id + 1; 

if($page_id > 24) { 

該運營商以及其弟弟經營者(遞增運算符)都給變量加1。但是,預增加運算符會添加一個,然後返回新值。另一方面,增量後的運算符返回變量的值,然後將其加1。

代碼不工作的原因是$page_id + 1 > 24不會增加$page_id因此它始終保持爲相同。這是有道理的,因爲如果你這樣做:

$a = $page_id + 1; 

你不會期望$page_id增加。你會期望$a$page_id多1,但你會期望$page_id是相同的。

3

答案很簡單:$ page_id的值在循環中沒有改變。

+0

因爲最後一頁頁24我試過'if($ page_id == 24)'那也行不通。 – fyz 2012-07-18 00:41:59

+0

問題是$ page_id是在while循環之前設置的,所以它看起來像$ page_id永遠不會改變,並且始終會根據相同的值進行檢查。 。 。 – ernie 2012-07-18 00:49:46

0
<?php 
$nav_next_id = $page_id + 1; 

$sql = "SELECT page FROM plm WHERE id = '$nav_next_id'"; 
$result = mysql_query($sql); 
while ($next_page = mysql_fetch_array($result)) 
{ 
    if($page_id + 1 > 24) 
    { 
    $goto_next_page = 'some_page.php'; 
    } 
    else 
    { 
    $goto_next_page = $next_page['page_title'];  
    } 
} 

?> 
0

哥們你不使用頁面的ID在循環,這就是爲什麼你總是得到相同的結果使得它看起來像如果別人不工作:

<?php 
    $nav_next_id = $page_id + 1; 
    $sql = "SELECT page FROM plm WHERE id = '$nav_next_id'"; 
    $result = mysql_query($sql); 
    while ($pages = mysql_fetch_array($result)){ 
     if ($pages['id'] > 24) { 
      $goto_next_page = 'some_page.php'; 
     } 
     else { 
      $goto_next_page = $pages['page_title'];  
     } 
    } 
?>