[英]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.