使用php/mysql根据下拉参数过滤结果 [英] filtering results based on dropdown paramenters using php/mysql
问题描述
我正在创建一个小的模拟库管理员面板. 我是php的新手,所以希望有人可以帮助我处理我的代码.
I'm creating a small mock-library adminstrator panel. I'm new to php so was hoping someone out there can help with my code.
我试图根据选择的任何下拉选项/参数来过滤结果.下拉列表指的是我的数据库表中的三列,这些列是应从中提取所需信息的.
I'm trying to filter results based on whatever dropdown option/paremter is selected. The dropdowns refer to three columns within my database table where the required information is due to be pulled from.
因此,例如:- book_title selected - search book_title WHERE query? IS LIKE '%';
我知道这是沿着这些思路,但需要一些指导.
So for instance: - book_title selected - search book_title WHERE query? IS LIKE '%';
I know it's along these lines but would like some guidance.
<?php
// Ignore warning and error messages
error_reporting(E_ALL);
ini_set('display_errors', '1');
$username="";
$password="";
$database="books";
$value= $_POST["filter-query"];
mysql_connect(localhost,$username,$password);
@mysql_select_db($duncan_library) or die( "Unable to select database");
//catalog1//
if ($_POST['filter-query'] == 'catalog_number')
{
$query = "SELECT * FROM books WHERE catalog_number LIKE '%user-search'%;
}
elseif ($_POST['filter-query'] == 'book_title')
{
$query = "SELECT * FROM books WHERE book_title LIKE '%user-search'%;
}
elseif ($_POST['filter-query'] == 'book_author')
{
$query = "SELECT * FROM books WHERE book_author LIKE '%user-search'%;
}
$sql = mysql_query($query);
while ($row = mysql_fetch_array($sql)) {
$catalog_number = $row["catalog_number"];
$book_title = $row["book_title"];
$book_author = $row["book_author"];
echo $row["myrow"]."";
}
}
?>
Filter:<br>
<select name="filter-query"">
<option value="catalog_number">Catalog Number</option>
<option value="book_title">Book Title</option>
<option value="book_author">Book Author</option>
</select>
</select>
</form>
当前错误
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\library\index.php on line 20
推荐答案
将LIKE字符串放在引号内,即使是%符号,也错过了双引号
Put your LIKE string inside quotes even the % sign and also you missed closing double quotes
//catalog1//
if ($_POST['filter-query'] == 'catalog_number')
{
$query = "SELECT * FROM books WHERE catalog_number LIKE '%user-search%'";
}
elseif ($_POST['filter-query'] == 'book_title')
{
$query = "SELECT * FROM books WHERE book_title LIKE '%user-search%'";
}
elseif ($_POST['filter-query'] == 'book_author')
{
$query = "SELECT * FROM books WHERE book_author LIKE '%user-search%'";
}
这篇关于使用php/mysql根据下拉参数过滤结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!