gpt4 book ai didi

php - 多个数据库字段的搜索表单

转载 作者:行者123 更新时间:2023-11-30 22:20:51 24 4
gpt4 key购买 nike

实际上,我正在尝试为具有单个搜索表单和多个数据库字段的个人网站创建搜索表单。如果数据与输入值匹配,则该字段或类似的所有字段都将回显。示例:

猜猜我的数据库中有 5 个字段:

$f1, $f2, $f3, $f5

而且它们都包含一些类似的字符串

$f1 = "Hello there I'm f1, look at the outside";
$f2 = "Hello there I'm f2, be brave on you";
$f3 = "Hello there I'm f3,Do great things";
$f4 = "Hello there I'm f4, drink somethings";
$f5 = "Hello there I'm f5, eat somethings";

现在猜测 $search 是一个输入字段,我们将搜索存储在这些变量上的所有数据。如果我们只在输入的 html 字段中键入 look at the outside 这个字符串,那么 $f1 将回显 $f1 的全部数据,但是如果我们使用 Hello there I'm 搜索这个字符串,然后它将 echo 我们所有的变量,因为在所有这些变量中这个字符串都可用。我认为示例将帮助您正确理解我的实际要求。

工作中遇到的问题:

搜索数据,如果匹配任何数据,则显示所有字段,因为我在所有字段的 foreach 循环上使用了 php 的 echo 关键字。

这里的片段:

<?php
if(isset($_GET['submit_value']) && !empty($_GET['search_input']))
{
include("db_config.php");
$db = database::getInstance();
$searchValue = $_GET['search_input'];
$sql = "SELECT * FROM `sitedata` WHERE c_main_title LIKE '%$searchValue%' OR c_main_body LIKE '%$searchValue%' OR cmt_dept_title LIKE '%$searchValue%' OR cmt_dept_body LIKE '%$searchValue%' OR aidt_dept_title LIKE '%$searchValue%' OR aidt_dept_body LIKE '%$searchValue%' OR food_dept_title LIKE '%$searchValue%' OR food_dept_body LIKE '%$searchValue%' OR rac_dept_title LIKE '%$searchValue%' OR rac_dept_body LIKE '%$searchValue%' OR p_message_title LIKE '%$searchValue%' OR p_message_body LIKE '%$searchValue%' OR vp_message_title LIKE '%$searchValue%' OR vp_message_body LIKE '%$searchValue%' OR about_college_title LIKE '%$searchValue%' OR about_college_body LIKE '%$searchValue%' OR mission_message LIKE '%$searchValue%' OR vision_message LIKE '%$searchValue%' ";
// Now i want to match fields with my $searchValue var if fields match with input data then that fields will echo. otherwise won't.

$result = $db->dbc->query($sql);
foreach( $result as $row)
{
// Now i need to use condition here to show my data which match with input field.
// like $field1 = " hello world this is me" and user input value = "hello world"; then this will show up!
echo "<h2 class='all-header'>".$row['c_main_title']."</h2>";
echo $row['c_main_body'];
echo "<h2 class='all-header'>".$row['cmt_dept_title']."</h2>";
echo $row['cmt_dept_body'];
echo "<h2 class='all-header'>".$row['aidt_dept_title']."</h2>";
echo $row['aidt_dept_body'];
echo "<h2 class='all-header'>".$row['food_dept_title']."</h2>";
echo $row['food_dept_body'];
echo "<h2 class='all-header'>".$row['p_message_title']."</h2>";
echo $row['p_message_body'];
echo "<h2 class='all-header'>".$row['vp_message_title']."</h2>";
echo $row['vp_message_body'];
echo "<h2 class='all-header'>".$row['about_college_title']."</h2>";
}
}
else { echo "<h2 class='not-found'>404 not found !</h2>";}
?>

最佳答案

您可以在显示每个字段或您需要显示的任何内容之前使用它(第一个字段的代码下方)

if(strpos($row['c_main_title'], $searchValue) !== false || strpos($row['c_main_body'], $searchValue) !== false){
echo "<h2 class='all-header'>".$row['c_main_title']."</h2>";
echo $row['c_main_body'];
}

关于php - 多个数据库字段的搜索表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36674574/

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