我有一套存儲在學校表中每行中的機構名稱。同一張表有四個不同的類別列,它們存儲他們提供的主題名稱。我想啓用一個功能,用戶在桌子上進行搜索以找出教授特定主題的機構的所有名稱(例如:物理學)。特定主題的名稱可以存儲在四個category
列中的任何一箇中。請建議使用mysqli_/mysql_查詢來進行此類搜索,或者如果您願意,可以建議一個可實現上述功能的PHP腳本。
編輯:我提下表結構:
Table showing column values
Table structure在多列中搜索關鍵字
添加各種不同的查詢,我都沒有結果的嘗試:
$query = mysql_query("SELECT name FROM institutes WHERE MATCH(category1, category2, category3, category4) AGAINST('$searchq' IN BOOLEAN MODE)") or die(" No records found.");
$query = mysql_query("SELECT name FROM institutes WHERE $searchq IN(category1, category2, category3, category4)") or die(" No records found.");
$query = mysql_query("SELECT name FROM institutes WHERE category1 LIKE '%$searchq%' OR category2 LIKE '%$searchq%' OR category3 LIKE '%$searchq%' OR category4 LIKE '%$searchq%' OR category5 LIKE '%$searchq%'") or die(" No records found.");
搜索表單:
<div class="row col-md-6 col-md-offset-2">
<div class="col-lg-6">
<div class="input-group">
<form action="search_results.php" method = "post">
<input type="text" name="search" class="form-control" placeholder="Search by subjects...">
<span class="input-group-btn">
<button class="btn btn-default" type="button submit">Go!</button>
</span>
</form>
</div><!-- /input-group -->
</div>
</div>
整個PHP代碼:
<?php
mysql_connect("localhost", "root", "secretpassword") or die("could not connect.");
mysql_select_db("edhoc") or die("could not find database.");
$result = "";
//collect info from database
if(isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
//echo $searchq;
//SQL query
$query = mysql_query("SELECT name FROM institutes WHERE category1 = '$searchq' OR category2 = '$searchq' OR category3 = '$searchq' OR category4 = '$searchq' OR category5 = '$searchq'") or die(" No records found.");
$count = mysql_num_rows($query);
if($count == 0) {
$output = "There's no search result";
} else {
while($array = mysql_fetch_assoc($query)) {
?>
<li><?php echo $array['name'];?></li>
<?php
}
}
}
?>
他們中沒有產生所需的輸出。 當physics
是搜索串的電流輸出爲:
物理學沒有找到記錄。
當physics
是搜索字符串,所需的輸出是:
- 邦薩爾類研究中心
- 共振Eduventures私人有限公司
[跨多個列搜索]的可能重複(http://stackoverflow.com/questions/36371155/searching-across-multiple-columns) – NineBerry
這是您24小時內第三次詢問同樣的問題。這個(多次詢問相同的問題)在Stack Overflow中被認爲是非常粗魯的。 – NineBerry
@NineBerry我道歉。我不打算粗魯。如果有的話,我正在絕望。 – Mickey