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