我希望我的搜索僅顯示匹配同一行中的值的結果。我希望我的搜索只顯示匹配字段值的結果。這是如何完成的?
我有兩個搜索字段:
'搜索' 和 '搜索字詞'
在我的數據庫字段名
名 姓氏 電子郵件
因此,例如:如果我搜索
「邁克」在「搜索」和「史密斯在「搜索詞」唯一的結果我想顯示的結果那場比賽「麥克·史密斯」沒有表現出像「麥克·哈里斯」
這是如何取得的成果?
謝謝!
詹姆斯
<?php
$conn = mysql_connect("", "", "");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
$search = addcslashes($search,'%_');
$searchterm = addcslashes($searchterm,'%_');
$search = "%" . $_POST["search"] . "%";
$searchterm = "%" . $_POST["searchterm"] . "%";
if (!mysql_select_db("")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$search = $_POST['search'];
$searchterm = $_POST['searchterm'];
$sql = "SELECT name,lastname,email
FROM test_mysql
WHERE name LIKE '%". mysql_real_escape_string($search) ."%'";
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if(empty($_GET['search'])){ // or whatever your field's name is
echo 'no results';
}else{
performSearch(); // do what you're doing right now
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
while ($row = mysql_fetch_assoc($result)) {
echo '<br><br><div class="data1">';
echo htmlentities($row["name"]);
echo '</div><br><div class="data2">';
echo htmlentities($row["lastname"]);
echo '</div><br><div class="data3">';
echo htmlentities($row["email"]);
echo '</div>';
}
mysql_free_result($result);
?>
因爲你的例子是什麼都不做與$搜索關鍵詞這個問題讀取滑稽。我假設你已經嘗試了一個簡單的AND語句? 「WHERE name LIKE'%」。$ search。「%'和name LIKE'%」。$ searchterm。「%'」 - 這會使兩個詞成爲一個要求。 –
對不起,我對mysql很新,我只是昨天才開始。我如何適應mysql_real_escape_string($ search)?我正在學習語法,不確定如何佈置剛纔所說的內容? – James