我有一个search.php
,其中我正在搜索三个字段:
- 表格编号。
- 姓名
- 电话号码。
但是当我选择来自号码
时,从选择选项中输入电话号码
,然后按搜索按钮,它会搜索电话号码。而不是表格编号。
我想要像当我选择 From no.
并输入一个值时那样进行搜索,它应该只搜索表单,没有其他内容,就像下面两个选项一样:
serach.php
<div class="tleft">
<h2 class="tdilouge">Search Reports</h2><center>
<table class="tbleft">
<form action="searchbyform.php" method="get">
<thead>
<tr>
<td>
<select name="formnumber" id="formnumber" >
<option>Form No.</option>
<option>Name</option>
<option>Telephone No.</option>
</select>
</td>
<td><input type="text" name="formnumber" id="formnumber" placeholder="Enter" /></td>
<td><input type="submit" value="Search" /></td>
</tr>
</thead>
</form>
</table></center>
</div>
这是submit.php
我有正确的数据库连接,列是表名:
submit.php
<?php
$formnumber = $_GET['formnumber'];
$sql = "SELECT * FROM colomn WHERE FormNo = $formnumber OR ConsumerName = $formnumber OR TelephoneNo = $formnumber";
$query = mysql_query( $sql );
if(mysql_num_rows($query) == 0)
{
echo "no result found";
}
echo "<table>";
echo "<thead></thead>";
while( $row = mysql_fetch_array( $query ) )
{
echo "<tr></tr>";
}
echo "</table>";
?>
最佳答案
您可以只检查该人选择了哪个选项,并且根据所选选项,您可以运行属于该选项的查询。 为选项指定一个值,如下所示:
(您应该更改选择名称,因为文本字段已命名为 formnumber
)
<select name="form" id="form" >
<option value="form">Form No.</option>
<option value="name">Name</option>
<option value="telephone">Telephone No.</option>
</select>
因此,当您选择第 1 号形式的选项时。 , $_GET['form']
将是“form”
所以只需使用 IF 来检查 3 个选项即可。
编辑: 表格编号时的查询。已选择,将如下所示:
“从列中选择 * WHERE FormNo = $formnumber”
还有姓名和电话号码。您应该只更改列名称。
if($_get['form']="form"){
$sql="SELECT * FROM colomn WHERE FormNo = $formnumber";
}
if($_get['form']="name"){
$sql="SELECT * FROM colomn WHERE ConsumerName = $formnumber";
}
if($_get['form']="telephone"){
$sql="SELECT * FROM colomn WHERE TelephoneNo = $formnumber";
}
也不要使用mysql。请改用 mysqli 或 PDO。
关于php - 如何从mysql数据库中检索特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20187819/