PHPを学ぶ8日目、私は間違った順序で処理しようとしていると感じています....私は昨日までうまくいっていました。 myselftは、偽のオンラインブックショップを作成する作業を設定しています(PHPの本をすべて知っている人はpopuarのようです)。最初に私の製品を作成し、それらをデータベースのページにすべてリストしました。簡単に、ドロップダウンボックスを使用して結果を注文しました。その後、簡単に改ページして、注文コードとページ作成コードに参加しようとしました。私の人生で最も痛いほどの数時間でしたが、完了しました。私は検索バーを利用しました。簡単に考えました、今、私はこの検索バーと私のページネーションと注文コードを混ぜようとしていて、私の髪は一握りに落ちています!私は本当に私が一度に3つすべてを学ぶことを試みたが、ほんの一握りの/頭がいっぱいだっただろう。PHP - データベース内のレコードを同時に検索しながらページを検索している間に
私の問題は...それはページングする...さあ、それは命令...はい、私が最初に検索結果を見ると...それはページがいくつあるかがわかります常に正しい値)しかし、2番目のページを表示するためにクリックすると、検索結果を表示しなくなり、データベースのすべての製品の2ページ目に移動します。リストを注文しようとすると、同じことが起こります。これは、すべての商品の注文リストに変更され、検索条件が空であることがわかります!
このような長い質問に申し訳ありませんが、私はちょうど私がスリップした場所で働くことができません!
ありがとうございました。
相続コード:booksearch.php:
(すべての無関係のコードを取り出してきた!)
<?php $query1 = "SELECT *
FROM booktable";
// execute the query
$results1 = mysql_query($query1)
or die(mysql_error());
// count the number of rows that are selected from the table
$field = mysql_num_fields($results1);
// echo $field;
for ($i = 0; $i < $field; $i++)
{
$names[$i] = mysql_field_name($results1, $i);
}
?>
<form name="searchbook" action="productssearch.php" method="get">
<br />
Got For It:<input type="text" id="searchbar" name="searchterm" value="Enter anything and we will search on title, author, publisher and ISBN"></input>
<br /><br />
<input type="submit" name="Search" value=" - Search - "></input>
</form>
productssearch.php:
require "dbconn.php";
$term = $_GET['searchterm'];
$records_per_page = 10;
//If user set the sort order, save to session var - else set default
if(@$_POST['order'])
{
$_SESSION['order'] = trim($_POST['order']);
}
elseif(!isset($_SESSION['order']))
{
$_SESSION['order'] = 'bookname';
}
//Determine the total records and pages
$query = mysql_query ("SELECT COUNT(bookname)
FROM booktable
WHERE bookname LIKE '%".$term."%'
OR bookisbn LIKE '%".$term."%'
OR bookpub LIKE '%".$term."%'
OR bookauthor LIKE '%".$term."%'");
$total_records = mysql_result($query, 0);
$total_pages = ceil($total_records/$records_per_page);
//Set the page to load
$page = (isset($_GET['page'])) ? (int) $_GET['page'] : 1;
if($page<1 || $page>$total_pages)
{
$page = 1;
}
//Create limit var for query
$limit_start = ($page-1) * $records_per_page;
//Create and run query for records on current page
$query = mysql_query ("SELECT bookname, bookauthor, bookpub, bookisbn
FROM booktable
WHERE bookname LIKE '%".$term."%'
OR bookisbn LIKE '%".$term."%'
OR bookpub LIKE '%".$term."%'
OR bookauthor LIKE '%".$term."%'
ORDER BY ".mysql_real_escape_string($_SESSION['order'])." ASC
LIMIT $limit_start, $records_per_page");
//Prepare output
//**************************************************************
$numrow = mysql_num_rows($query);
//Create pagination links
$navLinks = '';
//Prev page
if($page > 1)
{
$prevPage = $page - 1;
$navLinks .= "<a href='productssearch.php?page=$prevPage'>Prev</a> ";
}
else
{
$navLinks .= "Prev ";
}
//Individual pages
for($p=1; $p<=$total_pages; $p++)
{
$pageNo = ($p == $page) ? "<b>{$p}</b>" : $p;
$navLinks .= "<a class='pagin' href='productssearch.php?page=$p'>$pageNo</a> ";
}
//next page
if($page < $total_pages)
{
$nextPage = $page + 1;
$navLinks .= "<a href='productssearch.php?page=$nextPage'>Next</a>";
}
else
{
$navLinks .= "Next";
}
?>
(無関係スタンドからミドルリムーブ)
私は本当の初心者ですので、安全で安全なコードを作成する方法を習得していませんので、私はまだ暗号化されたユーザーと管理者のパスワードを知っています...スクリプトの仕組みを学びたい!
"風の強い"質問を読む時間をとってくれてありがとう!あなたを運んでいませんbecuase
私は上記のコメントを読んだだけで...それを働いたが、あなたはそれを確認した!あなたは華麗で素早い応答をありがとう!そして、初心者に親切にしてくれてありがとう... q&Aフォーラムの多くの人はあまり理解していません。 [= – Phil
うれしいことです。コメントありがとう! –
申し訳ありませんが、注文ビットはまだ機能していません、それ以外はすべてですが、再注文するフィールドを選択すると、searchtermが削除され、すべての製品が表示されます。アイデアはありますか?ありがとう – Phil