PHP-如果else语句不起作用?

时间:2012-07-18 00:33:21

标签: php mysql

$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,我可以确定当前页面的下一页。

一切顺利,直到我到达最后一页。这是第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'];
    }
}
}   

4 个答案:

答案 0 :(得分:3)

答案很简单:$ page_id的值在你的循环内没有改变。

答案 1 :(得分: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多一个,但您希望$page_id是相同的。

答案 2 :(得分: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'];     
    }
}

?>

答案 3 :(得分:0)

老兄,你没有在循环中使用页面的ID,这就是为什么你总是得到相同的结果,使它看起来像if else不工作:

<?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'];     
         }
     }
?>