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_pageHTMLにエコーしています。

ただし、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を追加してから、新しい値を返します。一方、post-increment演算子は、変数の値を返し、それを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

ループ内でページのIDを使用していないので、常に同じ結果が得られ、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 に答える
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 に答える