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

一切都很好,直到我来到最后一页。这是第 24 页。

所以我把一个if循环说如果页面> 24转到some_page.php。

$goto_next_page在我的 html 中回显。

但是,第 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

4 回答 4

3

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

于 2012-07-18T00:40:00.307 回答
2

也许您打算使用预增量运算符

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比 1 多$page_id,但你会期望$page_id是一样的。

于 2012-07-18T00:48:23.777 回答
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'];     
    }
}

?>
于 2012-07-18T00:43:11.220 回答
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'];     
         }
     }
?>
于 2012-10-12T22:28:46.647 回答