ホームページ >バックエンド開発 >PHPチュートリアル >ページングの問題: ページング クエリを実行できません

ページングの問題: ページング クエリを実行できません

WBOY
WBOYオリジナル
2016-06-23 13:02:191224ブラウズ

コードを読みたくない場合は、私の説明を読んでから解決策を送信してください。これは、Baidu に似た検索ページです。検索ボックスがあります
以下はクエリ結果を表示します。 たとえば、PHP を検索し、テーブルの num フィールドの下にある PHP の内容を検索すると、クエリの結果がすべてページネーションで表示されます。
最初のページと 2 番目のページです... ここでの問題は、クエリ結果がユーザーに基づいて、送信されるたびにデータベースのクエリに $_POST['num'] が使用されることです。
5 個の場合。各ページに 1 つのデータが表示され、3 ページのデータがクエリされるようになりました。各クエリではデータとページング情報を表示できますが、たとえば、2 番目のページをクリックすると、エラーが報告されます。 2 番目のページをクリックすると、送信された $_POST['num'] データがないため、エラーが報告されるのは 1 つのみです。最初のページのデータをクエリできるのですが、2 番目のページをクリックするとエラーが報告されます。しかし、ユーザーが 2 番目のページをクリックしたときにそれを修正する方法がわかりません。以前にクエリしたデータが消えないことを願っています。これについてはどうすればよいですか?誰もがこれを理解できるかどうかはわかりません

<div id="show">       <?php       header('content-type:text/html;charset=utf-8;');       include 'function.php';       if (isset($_POST['num'])||isset($_GET['page'])) {       $pdo=new PDO("mysql:host=localhost;dbname=t1","root","");       session_start();       $_SESSION['num']=$_POST['num'];       $stmt3=$pdo->prepare("select * from table1 where num=?");       $stmt3->execute(array($_POST['num']));       $res3=$stmt3->fetchall();       $rows=count($res3);       $pagesize=5;       if($rows==0){        $pagenum=1;       }else{        $pagenum=ceil($rows/$pagesize);       }       if(isset($_GET['page'])){          $page=$_GET['page'];          if(empty($page)||$page<0||!is_numeric($page)) {            $page=1;          }else{            $page=intval($page);          }        }else{        $page=1;       }       if($page>$pagenum){        $page=$pagenum;       }       $startnum = ($page - 1)*$pagesize;       $display_page=5;       $query = "SELECT * FROM qq where num=? LIMIT $startnum,$pagesize";       $stmt=$pdo->prepare("$query");       //$stmt=$pdo->prepare("select * from table1 where num=?");       $stmt->execute(array($_POST['num']));       $res=$stmt->fetchall(PDO::FETCH_ASSOC);       $v = current($res);       if($res){         foreach($res as $v){          //echo '<h3><span>'.$v['num'].'</span></h3>' ;          echo '<h4>'.$v['name'].'</h4>';         }       }else{        echo "无数据";       }               }       ?>     </div>     <div id="page">        <?php         if(isset($_POST['num'])||isset($_GET['page'])){           fenye();         }       ?>     </div>



ディスカッション (解決策) への返信
あなたの番号は郵送で送信されました。 2 ページ目、当然これ以上 num はありません

なぜなら、最初のページと 2 ページ目をクリックすると、POST メソッドの代わりに GET メソッドが使用されるからです。 sso赤い部分に問題があります= $ pdo-&gt; prepare( "select * from table1 where num =?"); );

その後、fenye メソッドは num と page を追加する必要があります

pagination に渡される URL には、次の 2 つのパラメータを追加する必要があります:?page=xxx&num=xxx

次のように変更してみてください

<div id="show">       <?php       header('content-type:text/html;charset=utf-8;');       include 'function.php';       $num = isset($_REQUEST['num'])? $_REQUEST['num'] : 0;       $page = isset($_REQUEST['page'])? $_REQUEST['page'] : 1;        $pdo=new PDO("mysql:host=localhost;dbname=t1","root","");        session_start();        $_SESSION['num']=$num;        $stmt3=$pdo->prepare("select * from table1 where num=?");        $stmt3->execute(array($num));        $res3=$stmt3->fetchall();        $rows=count($res3);        $pagesize=5;        if($rows==0){            $pagenum=1;        }else{            $pagenum=ceil($rows/$pagesize);        }        if($page){            if(empty($page)||$page<0||!is_numeric($page)) {                $page=1;            }else{                $page=intval($page);            }         }else{            $page=1;        }        if($page>$pagenum){            $page=$pagenum;        }        $startnum = ($page - 1)*$pagesize;        $display_page=5;        $query = "SELECT * FROM qq where num=? LIMIT $startnum,$pagesize";        $stmt=$pdo->prepare("$query");        //$stmt=$pdo->prepare("select * from table1 where num=?");        $stmt->execute($num);        $res=$stmt->fetchall(PDO::FETCH_ASSOC);        $v = current($res);        if($res){            foreach($res as $v){                //echo '<h3><span>'.$v['num'].'</span></h3>' ;                echo '<h4>'.$v['name'].'</h4>';            }        }else{         echo "无数据";        }       ?>     </div>     <div id="page">        <?php         if($num || $page){           fenye($num, $page);         }       ?>     </div>


次のようになりますBaidu、Baidu の次のページのリンクを見てください。検索語はすべてアドレスパラメータに含まれていますが、最初のページをクリックしてもエラーが報告されないだけです。または 2 ページ目では、メソッドは POST メソッドではなく GET メソッドで渡されます。 sso赤い部分に問題があります= $ pdo-&gt; prepare( "select * from table1 where num =?"); );

次に、fenye メソッドで num と page を追加する必要があります。
pagination に渡される URL には、次の 2 つのパラメーターを追加する必要があります。この問題を解決します?

あなたの番号は郵送で送信されました。2 ページ目以降は投稿がありません。したがって、当然、番号はもうありません

这个那个分页函数的代码
0f71cf2d3e4fc691962ff252181ca724";
echo "0885e9496e8a7abcb37d986806dd9235";
echo '25edfb22a4f469ecb59f1190150159c6'.$page.'/'.$pagenum.'页|bed06894275b65c1ab86501b08a632eb';
   if($page==1){
             echo '25edfb22a4f469ecb59f1190150159c6首页|bed06894275b65c1ab86501b08a632eb';
             echo '25edfb22a4f469ecb59f1190150159c6上一页|bed06894275b65c1ab86501b08a632eb';
   }else{
     echo '25edfb22a4f469ecb59f1190150159c6969efa3e79593faa6776a54b1e11b85c首页5db79b134e9f6b82c0b36e0489ee08ed|bed06894275b65c1ab86501b08a632eb';
             echo '25edfb22a4f469ecb59f1190150159c6eb450df7fab43ebc2688455fc22885cc上一页5db79b134e9f6b82c0b36e0489ee08ed|bed06894275b65c1ab86501b08a632eb';
   }
   $shoupage=5;
       $pageoffset=($shoupage-1)/2;
       $start=1;
       $end=$pagenum;
   if($pagenum>$shoupage){
        if($page>$pageoffset){
        $start=$page-$pageoffset;
        $end=$pagenum>$page+$pageoffset?$page+$pageoffset:$pagenum;
        }else{
        $start=1;
        $end=$pagenum>$shoupage?$shoupage:$pagenum;
        }
        if($page+$pageoffset>$pagenum){
        $start=$start-($page+$pageoffset-$end);
        }
       }
   echo 'dc6dce4a544fdca2df29d5ac0ea9906b';
       echo '657b1780c1e0ce660a6f99ce0d400961';
       for($i=$start;$i<=$end;$i++){
        echo '25edfb22a4f469ecb59f1190150159c6f300b7e427de65a7980acecabbe01dc6'.($i).'5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb';
       }
       echo '929d1f5ca49e04fdcb27f9465b944689';
           echo '16b28748ea4df4d9c2150843fecfba68';
   if($page==$pagenum){
    echo '25edfb22a4f469ecb59f1190150159c6|下一页|bed06894275b65c1ab86501b08a632eb';
    echo '25edfb22a4f469ecb59f1190150159c6尾页|bed06894275b65c1ab86501b08a632eb';
   }else{
    echo '25edfb22a4f469ecb59f1190150159c6|905205241e9c87c2a1ce77bb5030080c下一页5db79b134e9f6b82c0b36e0489ee08ed|bed06894275b65c1ab86501b08a632eb';
    echo '25edfb22a4f469ecb59f1190150159c6284ac78396054279dbf8b001c67b79c1尾页5db79b134e9f6b82c0b36e0489ee08ed|bed06894275b65c1ab86501b08a632eb';
   }
echo '929d1f5ca49e04fdcb27f9465b944689';
    echo '16b28748ea4df4d9c2150843fecfba68';
    
};
?>

在链接中加入  num=$num

把原来这句话        echo '25edfb22a4f469ecb59f1190150159c6f300b7e427de65a7980acecabbe01dc6'.($i).'5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb';
改成了这样echo '25edfb22a4f469ecb59f1190150159c6baa2b9f27cbd1323f31ca51e37237de8'.($i).'5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb';这样改对吗 但是还是提示我拼接错误  为什么?Parse error: syntax error, unexpected '=', expecting ',' or ';' in D:\wamp\www\function.php on line 33

在链接中加入  num=$num

改这样

<?phpfunction fenye($num){global $page,$pagenum,$shoupage,$pageoffset;echo "<div >";echo "<ul id='ul2'>";echo '<li>'.$page.'/'.$pagenum.'页|</li>';   if($page==1){             echo '<li>首页|</li>';             echo '<li>上一页|</li>';   }else{     echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'">首页</a>|</li>';             echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?'.($page-1).'&num='.$num.'">上一页</a>|</li>';   }   $shoupage=5;       $pageoffset=($shoupage-1)/2;       $start=1;       $end=$pagenum;   if($pagenum>$shoupage){        if($page>$pageoffset){        $start=$page-$pageoffset;        $end=$pagenum>$page+$pageoffset?$page+$pageoffset:$pagenum;        }else{        $start=1;        $end=$pagenum>$shoupage?$shoupage:$pagenum;        }        if($page+$pageoffset>$pagenum){        $start=$start-($page+$pageoffset-$end);        }       }   echo '<div>';       echo '<ul id="ul1">';       for($i=$start;$i<=$end;$i++){        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$i.'&num='.$num.'">'.($i).'</a></li>';       }       echo '</ul>';           echo '</div>';   if($page==$pagenum){    echo '<li>|下一页|</li>';    echo '<li>尾页|</li>';   }else{    echo '<li>|<a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page+1).'&num='.$num.'">下一页</a>|</li>';    echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$pagenum.'&num='.$num.'">尾页</a>|</li>';   }echo '</ul>';    echo '</div>';    };?>


然后调用改这样
     d503f33ea23d1dc68989cb9bc7dc0d23
        bc1b2003091b171356567ea6641a54cd
     16b28748ea4df4d9c2150843fecfba68

哈哈可以了  我先好好看看你的代码   

改这样

<?phpfunction fenye($num){global $page,$pagenum,$shoupage,$pageoffset;echo "<div >";echo "<ul id='ul2'>";echo '<li>'.$page.'/'.$pagenum.'页|</li>';   if($page==1){             echo '<li>首页|</li>';             echo '<li>上一页|</li>';   }else{     echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'">首页</a>|</li>';             echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?'.($page-1).'&num='.$num.'">上一页</a>|</li>';   }   $shoupage=5;       $pageoffset=($shoupage-1)/2;       $start=1;       $end=$pagenum;   if($pagenum>$shoupage){        if($page>$pageoffset){        $start=$page-$pageoffset;        $end=$pagenum>$page+$pageoffset?$page+$pageoffset:$pagenum;        }else{        $start=1;        $end=$pagenum>$shoupage?$shoupage:$pagenum;        }        if($page+$pageoffset>$pagenum){        $start=$start-($page+$pageoffset-$end);        }       }   echo '<div>';       echo '<ul id="ul1">';       for($i=$start;$i<=$end;$i++){        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$i.'&num='.$num.'">'.($i).'</a></li>';       }       echo '</ul>';           echo '</div>';   if($page==$pagenum){    echo '<li>|下一页|</li>';    echo '<li>尾页|</li>';   }else{    echo '<li>|<a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page+1).'&num='.$num.'">下一页</a>|</li>';    echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$pagenum.'&num='.$num.'">尾页</a>|</li>';   }echo '</ul>';    echo '</div>';    };?>


然后调用改这样
     d503f33ea23d1dc68989cb9bc7dc0d23
        43cc17ff91a64bda8095ee61e6436f26
     16b28748ea4df4d9c2150843fecfba68

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。