簡體   English   中英

MYSQL搜索-PHP表格

[英]MYSQL Search - PHP Form

<div class="searchbox">
    <form action="Search.php" method="get">
       <fieldset>
          <input id="$search" placeholder="Search for a Product" type="text" />
          <input id="submit" type="hidden" />
       </fieldset>
    </form>
</div>
<div id="content">
<ul>        
<?php

$host = "xxx"; 
$user = "xxx"; 
$pass = "xxx"; 
$db = "xxx"; 

mysql_connect($host, $user, $pass); 
mysql_select_db($db); 
unset($host,$user,$pass,$db); 


//$query = "SELECT produkt FROM checklist WHERE id IS "1";  
$query = "SELECT produkt FROM checklist WHERE id LIKE '%$search%'";  
$result = mysql_query($query); 
  while ($row = mysql_fetch_array($result)) 
{ 

echo "<li><span class='name'><b>$row[produkt]</b><br /></span><span class='comment'><i>Tierische Stoffe: </i>$row[tierisch]</span><i> Alkohol: </i>$row[alkohol]</span></span></li>";
  }  
?>

我的搜索框似乎出了點問題。 目前,我只查看數據庫中的所有項目,也想查看我要搜索的項目。

這樣嗎?

<div class="searchbox">
    <form action="Search.php" method="get">
       <fieldset>
          <input id="search" placeholder="Search for a Product" type="text" />
          <input id="submit" type="hidden" />
       </fieldset>
    </form>
</div>
<div id="content">
<ul>        
<?php

$host = "xxx"; 
$user = "xxx"; 
$pass = "xxx"; 
$db = "xxx"; 

mysql_connect($host, $user, $pass); 
mysql_select_db($db); 
unset($host,$user,$pass,$db); 

$search = $_POST['search'];

$query = "SELECT produkt FROM checklist WHERE id LIKE '%".$_POST['search']."%'";
//$query = "SELECT produkt FROM checklist WHERE id LIKE '%$search%'";  
$result = mysql_query($query); 
<input id="$search" placeholder

您在這里需要$嗎? 它應該變成:

<input id="search" placeholder

要從搜索查詢內部訪問GET變量,請使用$ _GET數組,如下所示:

$query = "SELECT produkt FROM checklist WHERE id LIKE '%{$_GET['search']}%'";  

但是為了安全起見並避免mysql注入,您可能想要這樣做:

$search = mysql_real_escape_string($_GET['search']);
$query = "SELECT produkt FROM checklist WHERE id LIKE '%{$search}%'";  

編輯:在輸入中忘記名稱屬性:

<input name="search" id="search" placeholder="Search for a Product" type="text" />

然后在你的PHP

$search = mysql_real_escape_string($_GET['search']);
$query = "SELECT produkt FROM checklist WHERE id LIKE '%{$search}%'";

$result = mysql_query($query); 
while ($row = mysql_fetch_array($result)){  
    echo "<li><span class='name'><b>{$row['produkt']}</b></span></li>";
} 

這個:

 <input id="$search" placeholder="Search for a Product" type="text" />

應該是(ID中沒有$):

<input id="search" placeholder="Search for a Product" type="text" />

您的查詢應為:

$query = "SELECT produkt FROM checklist WHERE id LIKE '%".$_POST['search']."%'";  

表單中的變量將傳遞到腳本(在本例中為同一頁面),因此必須使用$ _POST檢索它們。

您未設置$search的值。 您需要更新表單以包含一個name="search"的元素,並在查詢之前添加一行PHP,如下所示:

$search = $_GET['search'];

您還需要轉義輸入以避免SQL注入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM