php多个搜索文本框,带一个提交按钮

时间:2015-09-16 06:42:43

标签: php mysql

我想知道如何使用2个或更多文本框和仅一个提交按钮制作多个搜索条件。 我的剧本是:

$sql = "select * from wp_studenti ";

if (isset($_POST['search'])) {
$search_term = mysql_real_escape_string($_POST['search_box']);

$sql .= " WHERE nume= '{$search_term}' ";
}

$query = mysql_query($sql) or die (mysql_error());

echo "<form name ='search_form' method='POST' action='search.php'>"; 
echo "<center><h3>Cauta:</h3> <input type='text' name='search_box' />"; 
echo "<input type='submit' name='search' value='Cauta' /></center>"; 
echo "</form>";

以及搜索页面后显示的结果页面:

$sql = "select * from wp_studenti ";
if (isset($_POST['search'])) {
$search_term = mysql_real_escape_string($_POST['search_box']);
$sql .= "WHERE nume= '{$search_term}'";
}
echo "<center>\n";
echo "<table border='1'>"; 
echo "<thead>"; 
echo "<tr><th>Id</th>"; 
echo "<th>Nume</th>"; 
echo "<th>Localitate</th>"; 
echo "<th>Judet</th>"; 
echo "<th>Sector Financiar</th>"; 
echo "<th>Link</th></tr>"; 
echo "</thead>";
$rst = mysql_query($sql); 
while($a_row = mysql_fetch_assoc($rst))  { 
echo "<tr>";
echo "<td>"; echo $a_row['id']; echo "</td>";
echo "<td>"; echo $a_row['nume']; echo "</td>";
echo "<td>"; echo $a_row['localitate']; echo "</td>";
echo "<td>"; echo $a_row['judet']; echo "</td>";
echo "<td>"; echo $a_row['sector_financiar']; echo "</td>";
echo "<td>"; echo "<a href='results.php?id={$a_row['id']}'>{$a_row['link']}</a>" ;  echo "</td>";echo "</tr>";
echo "</table>";

3 个答案:

答案 0 :(得分:1)

你需要另一个搜索框:

echo "<center><h3>Cauta:</h3> <input type='text' name='search_box1' /><input type='text' name='search_box2' />"; 

您需要在SQL中使用该值:

if (isset($_POST['search'])) {
    $search_term1 = mysql_real_escape_string($_POST['search_box1']);
    $search_term2 = mysql_real_escape_string($_POST['search_box2']);
    $sql .= " WHERE nume= '{$search_term1}' OR nume= '{$search_term2}'";
}

但你必须考虑搜索应该如何工作,是否应该完全匹配一个或另一个?如果您希望文本包含而不是完全匹配,则可以使用语法nume LIKE '%searchword%'

答案 1 :(得分:1)

$sql = "select * from wp_studenti ";

if (isset($_POST['search'])) {
$search_term_by_Cauta = mysql_real_escape_string($_POST['search_box_1']);
$search_term_by_localitate = mysql_real_escape_string($_POST['search_box_2']);

//If you want both search mandatory, use "AND" Operator otherwise use "OR". If you want approximate search use "LIKE" Operator in bellow SQL


$sql .= " WHERE nume= '{$search_term_by_Cauta }' OR localitate = '{$search_term_by_localitate  }' ";
}

$query = mysql_query($sql) or die (mysql_error());

echo "<form name ='search_form' method='POST' action='search.php'>"; 
echo "<center><h3>Cauta:</h3> <input type='text' name='search_box_1' />"; 
echo "<h3>localitate:</h3> <input type='text' name='search_box_2' />"; 
echo "<input type='submit' name='search' value='Cauta' /></center>"; 
echo "</form>";

答案 2 :(得分:0)

使用mysqli而不是折旧的mysql。通过PHP,就像这样;

<form method='post'>
<input type='hidden' name='srch' val='1'>
Search Type1: <input type='text' name='s1'>
<br>
Search Type2: <input type='text' name='s2'>
<button>Submit</button>
</form>
<?php
if(isset($_POST['srch']))
{
 if(!empty($_POST['s1']))$search = $_POST['s1'];
else if(!empty($_POST['s2']))$search = $_POST['s2'];
else die ('No criteria entered');
rest of your code...

}
?>

出于安全原因,请参阅mysqli_real_escape等功能。

相关问题