#php #html #mysql #search #filter
#php #HTML #mysql #Поиск #Фильтр
Вопрос:
Я пытаюсь создать функцию поиска с использованием ключевого слова и выпадающего списка на своем веб-сайте, я искал в Google, но, похоже, я не могу найти тот же код. Я попытался объединить найденный код и пришел к этому. да, это работает, только если вы выберете по одному варианту в каждом из 3 выпадающих списков. И моя проблема в том, что это не работает, если я выбираю только один вариант только в одном выпадающем списке и приступаю к поиску.
<!DOCTYPE html>
<html>
<head>
<title>Activity</title>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css" media="screen">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/bootstrap-responsive.css" rel="stylesheet">
</head>
<body>
<?php
include('dbcon.php');
?>
<div class="container">
<div class="row-fluid">
<div class="span12">
<br />
<br />
<div class="row-fluid">
<div class="span6">
<div class="span6">
<form method="POST" action="search.php" class="navbar-search pull-left">
<input type="text" name="search" class="search-query" placeholder="Search">
<select name="author" class="input">
<option value="all">Select Author</option>
<option value="bbb">bbb</option>
<option value="rrr">rrr</option>
<option value="ooo">ooo</option>
<option value="hhh">hhh</option>
<option value="KingKoy Max">KingKoy Max</option>
</select>
<select name="category" class="input">
<option value="all">Select Category</option>
<option value="ccc">ccc</option>
<option value="ttt">ttt</option>
<option value="iii">iii</option>
<option value="ggg">ggg</option>
<option value="Romance">Romance</option>
</select>
<select name="year_publication" class="input">
<option value="all">Select Year</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
</select>
<input type="submit" value="Search Now">
</form>
</div>
<br />
<br />
<br />
<table class="table table-bordered table-hover table-striped" style="width:800px;">
<thead>
<tr>
<th>Title</th>
<th>Author</th>
<th>Category</th>
<th>Year Publication</th>
<th>Place Publication</th>
</tr>
</thead>
<tbody>
<?php
$query=mysql_query("select * from book")or die(mysql_error());
while($row=mysql_fetch_array($query)){
?>
<tr>
<td><?php echo $row['title']; ?></td>
<td><?php echo $row['author']; ?></td>
<td><?php echo $row['category']; ?></td>
<td><?php echo $row['year_publication']; ?></td>
<td><?php echo $row['place_publication']; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</body>
вот php-код:
<?php
include('dbcon.php');
?>
<?php
$search=$_POST['search'];
$author=$_POST['author'];
$category=$_POST['category'];
$year_publication=$_POST['year_publication'];
$query=mysql_query("select * from book where
title like '%$search%' AND author like '%$author%' AND category like '%$category%' AND year_publication like '%$year_publication%' ")or die(mysql_error());
while($row=mysql_fetch_array($query)){
?>
<tr>
<td><?php echo $row['title']; ?></td>
<td><?php echo $row['author']; ?></td>
<td><?php echo $row['category']; ?></td>
<td><?php echo $row['year_publication']; ?></td>
<td><?php echo $row['place_publication']; ?></td>
</tr>
<?php
}
?>
Ответ №1:
Вы можете проверить, выбран ли выпадающий список или нет, и в случае пустоты установить пустую переменную. Попробуйте заменить
$search=$_POST['search'];
$author=$_POST['author'];
$category=$_POST['category'];
$year_publication=$_POST['year_publication'];
Автор:
if(empty($_POST['search']))
$search = '';
else
$search=$_POST['search'];
if(empty($_POST['author']))
$author = '';
else
$author=$_POST['author'];
if(empty($_POST['category']))
$category = '';
else
$category=$_POST['category'];
if(empty($_POST['year_publication']))
$year_publication = '';
else
$year_publication=$_POST['year_publication'];
Комментарии:
1. Я попытался заменить его, но все равно не работает .. в любом случае, спасибо