用php-html中的表单过滤数据库表



我正试图在php/html中创建一个简单的搜索/过滤页面,但我遇到了这两个错误,我花了几个小时试图修复它,但我根本做不到(我刚刚开始学习,我正在遵循教程,但我无法使其工作(

注意:未定义的变量:第34行上的search_result/storage/ssd1/909/16765909/public_html/db/db_search.php

警告:mysqli_fetch_array((要求参数1为mysqli_result,在第34行的/storage/ssd1/909/16765909/public_html/db/db_search.php中给定null

这是我迄今为止的代码

<!DOCTYPE html>
<html>
<head>
<title>PHP HTML TABLE DATA SEARCH</title>
<style>
table,tr,th,td
{
border: 1px solid black;
}
</style>
</head>
<body>

<form action="db_search.php" method="post">
<input type="text" name="valueToSearch" placeholder="Value To Search"><br><br>
<input type="submit" name="search" value="Filtrar"><br><br>

<table border="2" >
<tr>
<td>ID</td>
<td>Cédula</td>
<td>Nombre</td>
<td>Apellido</td>
<td>Género</td>
<td>Año de Nacimiento</td>
<td>Correo</td>
<td>Desde</td>
<td>Edit</td>
<td>Delete</td>
</tr>
<!-- populate table from mysql database -->
<?php 
while($row=mysqli_fetch_array($search_result)):?>
<tr>
<td><?php echo $row['user_id'] ?></td>
<td><?php echo $row['user_ssn'] ?></td>
<td><?php echo $row['user_name'] ?></td>
<td><?php echo $row['user_lastname'] ?></td>
<td><?php echo $row['user_gender'] ?></td>
<td><?php echo $row['user_birthdate'] ?></td>
<td><?php echo $row['user_mail'] ?></td>
<td><?php echo $row['user_datestamp'] ?></td>
<td><a href="/db/db_mod.php?id=<?php echo $row['user_id']; ?>">Edit</a></td>
<td><a href="/db/db_del.php?id=<?php echo $row['user_id']; ?>">Delete</a></td>
</tr>
<?php endwhile;?>
</table>
</form>

</body>
</html>
<?php
if(isset($_POST['search']))
{
$valueToSearch = $_POST['valueToSearch'];
// search in all table columns
// using concat mysql function
$query = "SELECT * FROM `user` WHERE CONCAT(`id`, `user_ssn`, `user_name`, `user_lastname`, `user_gender`, `user_birthdate`, `user_mail`, `user_datestamp`) LIKE '%".$valueToSearch."%'";
$search_result = filterTable($query);

}
else {
$query = "SELECT * FROM `user`";
$search_result = filterTable($query);
}
// function to connect and execute the query
function filterTable($query)
{
$connect = mysqli_connect("localhost", "root", "", "practice");
$filter_Result = mysqli_query($connect, $query);
return $filter_Result;
}
?>
</body>
</html>

首先需要在渲染数据之前提取数据。

<!DOCTYPE html>
<html>
<head>
<title>PHP HTML TABLE DATA SEARCH</title>
<style>
table,tr,th,td
{
border: 1px solid black;
}
</style>
</head>
<body>
<?php
if(isset($_POST['search']))
{
$valueToSearch = $_POST['valueToSearch'];
// search in all table columns
// using concat mysql function
$query = "SELECT * FROM `user` WHERE CONCAT(`id`, `user_ssn`, `user_name`, `user_lastname`, `user_gender`, `user_birthdate`, `user_mail`, `user_datestamp`) LIKE '%".$valueToSearch."%'";
$search_result = filterTable($query);

}
else {
$query = "SELECT * FROM `user`";
$search_result = filterTable($query);
}
// function to connect and execute the query
function filterTable($query)
{
$db = new mysqli("localhost", "root", "", "practice");
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
} 
$filter_Result = $db->query($query) or die($db->error);
return $filter_Result;
}
?>
<form action="db_search.php" method="post">
<input type="text" name="valueToSearch" placeholder="Value To Search"><br><br>
<input type="submit" name="search" value="Filtrar"><br><br>

<table border="2" >
<tr>
<td>ID</td>
<td>Cédula</td>
<td>Nombre</td>
<td>Apellido</td>
<td>Género</td>
<td>Año de Nacimiento</td>
<td>Correo</td>
<td>Desde</td>
<td>Edit</td>
<td>Delete</td>
</tr>
<!-- populate table from mysql database -->
<?php 
while($row=$search_result->fetch_assoc()):?>
<tr>
<td><?php echo $row['user_id'] ?></td>
<td><?php echo $row['user_ssn'] ?></td>
<td><?php echo $row['user_name'] ?></td>
<td><?php echo $row['user_lastname'] ?></td>
<td><?php echo $row['user_gender'] ?></td>
<td><?php echo $row['user_birthdate'] ?></td>
<td><?php echo $row['user_mail'] ?></td>
<td><?php echo $row['user_datestamp'] ?></td>
<td><a href="/db/db_mod.php?id=<?php echo $row['user_id']; ?>">Edit</a></td>
<td><a href="/db/db_del.php?id=<?php echo $row['user_id']; ?>">Delete</a></td>
</tr>
<?php endwhile;?>
</table>
</form>

</body>
</html>

最新更新