我有一个用户输入数据的表单,例如AXZAA QS1QS。此数据发布到我的PHP脚本。 PHP脚本连接到MYSQL数据库,该数据库目前包含2条记录。
这个想法是PHP脚本将获取输入并将其与数据库中的记录进行比较。如果记录存在,则它们显示在网页上的表格中,否则会显示错误消息。
我的PHP脚本存在许多问题,并且多次修改了我的脚本。但是,我遇到的最大问题是:
当表单第一次出现时,消息记录不存在两次,这是在用户输入任何数据并且第一次看到该表单之前。见下图。
输入数据后(当PHP脚本部分正常工作时),如果存在匹配,即存在记录,以及表中的记录,我将收到一条错误消息,告诉我没有找到记录。为了查看我是否可以解决问题,我添加了代码告诉我无法找到哪些记录,找不到的记录是找到的记录以及数据库中我没有记录的其他记录。寻找。我知道我的PHP脚本中的SQL查询告诉脚本从数据库中获取所有内容但是,我会认为if语句可以解决问题。
很抱歉写了这么长的问题,我希望它不会混淆。
enter code here
<?php
//Connect to the database connection file
require 'databaseconnection.php';
$searchBar=(isset($_POST['searchBar']) ? $_POST['searchBar'] :null);
$userdata = trim($searchBar);
$cleaned_data = preg_split('/[\s]+/', $userdata);
$sql = "SELECT DISTINCT * FROM atable_2";
$result = mysqli_query($database_connection, $sql);
echo "<table border>
<tr>
<th>Allocation</th>
<th>Codes</th>
<th>Names</th>
</tr>";
while($putdatabaseanswer_intoarray = mysqli_fetch_array($result)) {
$allocation_id = $putdatabaseanswer_intoarray["allocation"];
$codes_id = $putdatabaseanswer_intoarray["codes"];
$names_id = $putdatabaseanswer_intoarray["names"];
foreach($cleaned_data as $value) {
if($value==$codes_id) {
echo "<tr>";
echo "<td>" . $allocation_id. "</td>";
echo "<td>" . $codes_id . "</td>";
echo "<td>" . $names_id . "</td>";
echo "</tr>";
}
else
{
echo "<br />";
echo "One or more of the records have not been found: $codes_id";
echo"<br />";
}
}
}
echo "</table>";
?>
答案 0 :(得分:0)
在像
之类的if语句之后分配$ searchbar会更好`<?php
//Connect to the database connection file
require 'databaseconnection.php';
if(isset($_POST['searchBar']))
{
$searchbar = $_POST['searchBar'];
$userdata = trim($searchBar);
$cleaned_data = preg_split('/[\s]+/', $userdata);
$sql = "SELECT DISTINCT * FROM atable_2";
$result = mysqli_query($database_connection, $sql);
echo "<table border>
<tr>
<th>Allocation</th>
<th>Codes</th>
<th>Names</th>
</tr>";
while($putdatabaseanswer_intoarray = mysqli_fetch_array($result)) {
$allocation_id = $putdatabaseanswer_intoarray["allocation"];
$codes_id = $putdatabaseanswer_intoarray["codes"];
$names_id = $putdatabaseanswer_intoarray["names"];
foreach($cleaned_data as $value) {
if($value==$codes_id) {
echo "<tr>";
echo "<td>" . $allocation_id. "</td>";
echo "<td>" . $codes_id . "</td>";
echo "<td>" . $names_id . "</td>";
echo "</tr>";
}
else
{
echo "<br />";
echo "One or more of the records have not been found: $codes_id";
echo"<br />";
}
}
}
echo "</table>";
}
else{
echo "<p>Please enter a search term</p>";
}
?>
然后你可以在那个#34内执行MySQL查询;如果&#34;假设存在值
,而不是让它执行