実際、私は単一の検索フォームと複数のDBフィールドを持つ個人用Webサイトの検索フォームを作成しようとしています。データが入力値と一致すると、そのフィールドまたは同様のすべてのフィールドがエコーされます。 例:複数のdbフィールドの検索フォーム
は私が私のデシベルでの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
が入力フィールドだと思い、私たちはすべてを検索しますそれらの変数に格納されたデータ。 look at the outside
と入力した場合、$f1
は$f1
のデータ全体をエコーしますが、Hello there I'm
という文字列で検索すると、すべての変数がこのすべての変数に含まれているため、echo
という変数がすべて使用されます。私はその事例が実際に私の必要条件を正しく理解するのに役立つと思います。作業に直面
問題:
検索データ私はすべてのフィールドのforeachループ上のPHPのエコーキーワードを使用して、すべてのフィールドが表示されているすべてのデータと一致している場合。
ここスニペット:
<?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>";}
?>
あなたの上記のコードで発生か? – Chay22
検索クエリに一致するフィールドをDBクエリから見つけることはできません。そのために別々の検索クエリを設定する必要があります。 – aeonsleo
問題が直面している問題: データと一致するデータがあれば、すべてのフィールドが表示されます。echoキーワードはすべてのフィールドに対してforeachループで使用されます。 –