gpt4 book ai didi

PHP/MySQL 搜索功能

转载 作者:行者123 更新时间:2023-11-29 02:51:03 32 4
gpt4 key购买 nike

我关注了this tutorial彻底,并取得了成功。然而,它把我带到了一个死胡同,我必须付费才能访问关于实现“搜索”功能的教程。

我想知道是否有人可以帮助我了解如何根据教程的构建方式实现搜索功能?教程似乎不适用于此。

到目前为止,我已经在一个单独的页面上尝试过这个,但它似乎不起作用 - 我也不知道如何在我的实际网站上实现它。

<?php
mysql_connect("localhost","root","") or die("could not connect");
mysql_select_db("kkp") or die("could not find db!");
$output ='';

//collect
if (isset($_POST['search'])){
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysql_query("SELECT * FROM personal_info WHERE FirstName LIKE '%$searchq%' OR SurName LIKE '%$searchq%'") or die("could not search");
$count = mysql_num_rows($query);
if($count == 0){
$output = 'There was no search results!';
}else{
while($row = mysql_fetch_array($query)){
$fname = $row['FirstName'];
$lname = $row['SurName'];
$id = $row['id'];

$output .= '<div>'.$fname.''.$lname.'</div>';
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Search</title>
</head>
<body>
<form method="post" action="search.php"></form>
<input type="text" name="search" placeholder="Search for student">
<input type="submit" value="Submit">
</body>
</html>

<?php print("$output");?>

此外,这里是我尝试实现搜索功能的地方。它只显示一个表格,其中包含我添加到数据库中的条目。

<div class="row">
<h3>List of Student Volunteers</h3>
</div>
<div class="row">
<table class="table table-striped table-bordered">
<thead>
<tr>
<td>Name</td>
<td>Email Address</td>
<td>Mobile Number</td>
<td>Action</th>
</tr>
</thead>
<tbody>
<?php
include 'database.php';
$pdo = Database::connect();
$sql = 'SELECT * FROM personal_info ORDER BY id DESC';
foreach ($pdo->query($sql) as $row) {
echo '<tr>';
echo '<td>'. $row['FirstName'] . '</td>';
echo '<td>'. $row['EmailAddress'] . '</td>';
echo '<td>'. $row['MobileNum'] . '</td>';
echo '<td width=250>';
echo '<a class="btn" href="read.php?id='.$row['id'].'">Read</a>';
echo ' ';
echo '<a class="btn" href="update.php?id='.$row['id'].'">Update</a>';
echo ' ';
echo '<a class="btn" href="delete.php?id='.$row['id'].'">Delete</a>';
echo '</td>';
echo '</tr>';
}
Database::disconnect();
?>

最佳答案

您的 HTML 不正确。您正在关闭 <form>标签太早了,所以 <input>未提交到 PHP 文件。

例如,将您的 HTML 更改为:

<form method="post" action="search.php">
<input type="text" name="search" placeholder="Search for student">
<input type="submit" value="Submit">
</form>

要测试和调试提交给 PHP 文件的数据,您可以使用 print_r($_POST)查看所有详细信息。

例如,根据你的代码,添加:

<?php
mysql_connect("localhost","root","") or die("could not connect");
mysql_select_db("kkp") or die("could not find db!");
$output ='';
print_r($_POST);
// ...

根据您发布的代码,您应该会看到一个空数组。这会帮助您确定问题。


编辑:扩展搜索功能...

您的 SQL 已经有 LIKE '%$searchq%'部分,这将过滤您的 SQL 结果。您只需要更新其他 SQL 查询即可执行类似操作:

$sql = 'SELECT * FROM personal_info ORDER BY id DESC';

应该是这样的:

$sql = "SELECT * FROM personal_info WHERE FirstName LIKE '%$searchq%' OR LastName LIKE '%$searchq%' ORDER BY id DESC";

你只需要定制SQL来添加合适的LIKE条目。

关于PHP/MySQL 搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35752944/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com