次のコードがあります。
<?php
include "include.php";
session_start();
// Defining variables from home.php if set
if(isset($_POST['title'])){
$title = mysql_real_escape_string($_POST['title']);
}
if(isset($_POST['author'])){
$author = mysql_real_escape_string($_POST['author']);
}
if(isset($_POST['isbn'])){
$isbn = mysql_real_escape_string($_POST['isbn']);
}
if(isset($_POST['keyword'])){
$keyword = mysql_real_escape_string($_POST['keyword']);
}
if(isset($_POST['sort'])){
$sort=@$_POST['sort'];}
// Determine the WHEREs to use
$where = array();
if ( ! empty($title))
$where[] = "booktitle LIKE '%" . $title . "%'";
if ( ! empty($author))
$where[] = "author LIKE '%" . $author . "%'";
if ( ! empty($isbn))
$where[] = "isbn LIKE '%" . $isbn . "%'";
if ( ! empty($keyword))
$where[] = "description LIKE '%" . $keyword . "%'";
//Determine the ORDERs to use
$order = array();
if ((isset($sort)) && ($sort=='lowhigh'))
$order[] = "price ASC";
if ((isset($sort)) && ($sort=='highlow'))
$order[] = "price DESC";
// Build the query
$query = 'SELECT * FROM book';
if ( ! empty($where))
$query .= ' WHERE ' . implode(' AND ', $where);
if(! empty($sort))
$query .= ' ORDER BY ' . implode($order);
//Display results
$result = mysqli_query($con, $query) or die("Error in query $query: " . mysqli_error());
while ($row = mysqli_fetch_array($result)) {
?><a id="1" href="book.php" border="0"><img src="<?php echo $row[12]; ?>" width="112px" height="150px" /></a>
<a href="book.php?booktitle='<?php echo $_SESSION['booktitle']=$row[1];?>'"><b><?php echo $row[1] . ", (" . $row[5] . ")";?></b></a><br><?php
echo $row[2];
echo "<br><div style='text-align:right'> <b>£" . $row[9] . "</b></div>";
echo "<b>Book description:</b> " . substr($row[3],0,300) . "...<br /><hr>";
}
mysqli_close($con); //closes the connection
?>
フロント エンド ページの 4 つのテキスト フィールドからの入力を渡し、結果を表示します。これはすべてうまくいきます。表示された結果を並べ替えるときです。たとえば、Price: 低から高を選択すると、データベース内のすべての結果が配置され、実行された検索の結果だけでなく、すべてが表示されます。元の検索を思い出す方法を教えてください。
これは私のフォームです:
<form id="rform" name="formsort" action="" method="post">
<select name="sort" id="sort" onChange="document.forms['formsort'].submit()">
<option value="default">Sort Results</option>
<option value="lowhigh">Price: Low to High</option>
<option value="highlow">Price: High to Low</option>
</select>
</form>