search.php
<?phpinclude('db_class.php'); include('inc/function.php'); $keyword=trim($_POST['keyword']);if($keyword==""){echo "<script>alert('请输入新闻名称!'); history.go(-1);</script>";exit;//结束程序}// 数据库查找代码$page=isset($_POST['page'])?intval($_POST['page']):1; $num=2; $total=$db->getcount("select * from `".$prefix."newsbase` where id like '%{$keyword}%' or title like '%{$keyword}%' ");//页码计算$pagenum=ceil($total/$num); //获得总页数,也是最后一页$page=min($pagenum,$page);//获得首页$prepg=$page-1;//上一页$nextpg=($page==$pagenum ? 0 : $page+1);//下一页$offset=($page-1)*$num;$result=$db->query("select * from `".$prefix."newsbase` where sn like '%{$keyword}%' or title like '%{$keyword}%' or author like '%{$keyword}%' order by news_id desc");if($row=mysql_num_rows($result)){while($row=$db->getarray($result)){?><tr> <td class="font" valign="top" width="130"><?php echo $row[id]; ?></td> <td class="font" valign="top" width="130"><?php echo $row[title]; ?></td> <td class="font" valign="top" width="130"><?php echo $row[author]; ?></td></tr> <?php}} else{echo "<script>alert('没有该新闻信息!'); history.go(-1);</script>";exit;//结束程序}?><?php include 'inc/fy.php'; //分页类$page=new page(array('total'=>$total,'perpage'=>$num));echo $page->show(3);?>
1. ページ変数は get を使用して渡されていませんか?
2.$result=$db->query("select * from `".$prefix."newsbase` where sn like '%{$keyword}%' or title like '%{$keyword}%' or author like '%{$keyword}%' order by news_id desc"); この文はページング条件を満たしていません。
次のように変更します:
$result=$db->query("select * from `".$prefix."newsbase` where sn like '%{$keyword}%' or title like '%{$keyword}%' or author like '%{$keyword}%' order by news_id desc Limit {$offset},{$num}");
配信を取得するためにページが変更され、目標を達成するためにページ分割条件が追加されました$ num の値に従って検索して各ページの記事数を表示するようにしましたが、次のページをクリックしても次のページに移動できず、「ニュース名を入力してください」と表示されます
URL に問題があります。 。ページネーションクラスに URL はありますか?前へ 次へ、。 。 。いずれも URL が必要です。
ニュースリスト作成時はページングクラスは成功したので問題ないと思いますが、今回の検索リスト作成時はページングに問題がありました。
http : //www.chinahtml.com/0702/php-117150834711176.html
これは、model(3) を使用するページング クラスです
2 日間考えてきましたが、まったくわかりません。ということで、Shrimpが解析をお手伝いさせていただきたいと思います!
今日再度テストしたところ、以下の検索コードを削除した後、クリックするとデータベース内のすべてのデータが表示され、ページングも正常に表示されましたが、次のコードを追加した後、次をクリックすると、ページでは常に「ニュース名を入力してください」というプロンプトが表示されますが、URL が原因でエラーが発生するはずはありません。理解できない! ?
$keyword=trim($_POST['keyword']);if($keyword==""){echo "<script>alert('请输入新闻名称!'); history.go(-1);</script>";exit;//结束程序}
$_POST['keyword'] はフォームが送信されたときにのみ有効で、ページがめくられると消えます
ページネーションでキーワードを渡したい場合は、次のようにするのが最善です。 GET メソッドを使用してフォームで送信します。送信後、フォーム内のアクション内のリンクのすべてのパラメーターは自動的には送信されません。これは 内に配置する必要があります。次に、中国語で問題が発生した場合は、送信する前に url_encode を実行する必要があります。そうしないとコードが文字化けします。 http://www.phpcxz.com/a/web/phpweb/2011/0802/113.html
皆さんの質問に従って、問題は解決しました。ありがとうございます。
ページをめくるときに .php?keyword=$keyword を追加してキーワード パラメータを渡すことができます
その後、 $keyword=isset($_POST['keword'])?'':(isset($_GET[ 'keyword' ])?$_GET['keyword']:'')
はい、問題を解決した後、振り返ってみると、この問題は非常に単純であることがわかりました。強化されました、笑!
LZ、私もあなたの状況に遭遇しました。検索結果の最初のページは正常ですが、次のページが表示されると、検索結果のキーワードが失われます。デフォルトでは、検索結果のすべてのレコードが失われます。データベースが表示されます。キーを入力してください。単語検索後、最初のページは通常どおり表示されますが、ページをめくると、データベース内のすべてのレコードが表示されます。学習するために、検索結果のページング コードを投稿していただけますか。それから?
すみません、投稿者さん、私もあなたと同じ問題を抱えています。どうすれば解決できますか? ?