繁体   English   中英

PHP-如果其他语句不起作用?

[英]PHP- if else statement not working?

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

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

也许您打算使用pre-increment运算符

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相同。

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

?>

杜德(Dude),您没有在循环中使用页面的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'];     
         }
     }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM