Php 从数据库返回一个结果的Mysql搜索查询
我正在从我的一个小数据库表开发一个小型搜索引擎。但无论我搜索什么,它都只显示一个结果。请帮我正确地做那件事 谢谢 HTML格式:Php 从数据库返回一个结果的Mysql搜索查询,php,mysql,forms,search,Php,Mysql,Forms,Search,我正在从我的一个小数据库表开发一个小型搜索引擎。但无论我搜索什么,它都只显示一个结果。请帮我正确地做那件事 谢谢 HTML格式: <form action="search_page.php" method="post"> <select name="search_type" id="search_type" required> <option value="*" selected disabled>Search By...</op
<form action="search_page.php" method="post">
<select name="search_type" id="search_type" required>
<option value="*" selected disabled>Search By...</option>
<option value="name">Name</option>
<option value="mailing_address">Mailing Address</option>
<option value="permanent_address">Permanent Address</option>
<option value="current_prof_1">Profession</option>
</select>
<input type="search" name="search" placeholder="Search Here..." required>
<button type="submit" name="search_start" class="search_button">Search</button>
</form>
按…搜索。。。
名称
通讯地址
永久地址
职业
搜寻
和php查询代码:
<?php
if (isset($_POST['search_start'])) {
$search_by = $_POST['search_type'];
$search_for = $_POST['search'];
$search_query="SELECT * FROM member Where $search_by like '%$search_for%'";
$search_pull = mysqli_query($connection, $search_query);
$search_count = mysqli_num_rows($search_pull);
if ($search_count > 0 ) {
$serial = 1;
while ($row = mysqli_fetch_array($search_pull)) {
$member_id = $row["id"];
$name = ucwords($row["name"]);
$batch = $row["batch"];
$search_members ="<tr>";
$search_members .="<td>$serial</td>";
$search_members .="<td>$name</td>";
$search_members .="<td>$batch</td>";
$search_members .="</tr>";
++$serial;
}
}
}
?>
更改
$search_members ="<tr>";
$search_members=”“;
到
$search_成员=”;
每次在循环中都初始化打印字符串
您需要将其与相应的记录连接起来
有了这个输入错误,您的结果就是每次都在while循环中用最新的记录来完成
另外,请初始化
$search\u members=''代码>
如果返回零行,则在while循环之前,它不应返回未定义的变量错误。更改
$search_members ="<tr>";
$search_members=”“;
到
$search_成员=”;
每次在循环中都初始化打印字符串
您需要将其与相应的记录连接起来
有了这个输入错误,您的结果就是每次都在while循环中用最新的记录来完成
另外,请初始化
$search\u members=''代码>
如果返回零行,则在执行while循环之前,它不应返回未定义的变量错误。将代码替换为:
<?php
if (isset($_POST['search_start'])) {
$search_by = $_POST['search_type'];
$search_for = $_POST['search'];
$search_query="SELECT * FROM member Where $search_by like '%$search_for%'";
$search_pull = mysqli_query($connection, $search_query);
$search_count = mysqli_num_rows($search_pull);
if ($search_count > 0 ) {
$serial = 1;
$search_members='';
while ($row = mysqli_fetch_array($search_pull)) {
$member_id = $row["id"];
$name = ucwords($row["name"]);
$batch = $row["batch"];
$search_members .="<tr>";
$search_members .="<td>$serial</td>";
$search_members .="<td>$name</td>";
$search_members .="<td>$batch</td>";
$search_members .="</tr>";
++$serial;
}
}
}
?>
将代码替换为:
<?php
if (isset($_POST['search_start'])) {
$search_by = $_POST['search_type'];
$search_for = $_POST['search'];
$search_query="SELECT * FROM member Where $search_by like '%$search_for%'";
$search_pull = mysqli_query($connection, $search_query);
$search_count = mysqli_num_rows($search_pull);
if ($search_count > 0 ) {
$serial = 1;
$search_members='';
while ($row = mysqli_fetch_array($search_pull)) {
$member_id = $row["id"];
$name = ucwords($row["name"]);
$batch = $row["batch"];
$search_members .="<tr>";
$search_members .="<td>$serial</td>";
$search_members .="<td>$name</td>";
$search_members .="<td>$batch</td>";
$search_members .="</tr>";
++$serial;
}
}
}
?>
如果我是您,我会首先关注SQL注入漏洞…成员id。您如何处理该漏洞?问题已经解决。谢谢大家@草莓,我只是在练习搜索过程。如果我是你的话,我会首先关注SQL注入漏洞…成员id。你怎么处理这个问题?问题已经解决了。谢谢大家@草莓,我只是在练习搜索过程。别忘了将$search\u members
初始化为循环外的空字符串。非常感谢。问题已经解决了。我已经在循环外有一个空字符串。不要忘记将$search\u members
初始化为循环外的空字符串。非常感谢。问题已经解决了。我已经在循环外有一个空字符串了。谢谢你,阿米特。。。已解决,但您的答案也是正确的…@pol请接受答案。所以这对某人来说是有帮助的。嗨,阿米特,事实上两个答案都是一样的。此外,我有问题接受多个答案在同一时间。谢谢阿米特。。。已解决,但您的答案也是正确的…@pol请接受答案。所以这对某人来说是有帮助的。嗨,阿米特,事实上两个答案都是一样的。此外,我有问题接受多个答案在同一时间。