【发布时间】:2015-01-22 08:29:06
【问题描述】:
我是 PHP 新手,创建了一个基本的 HTML 表单;
<form id="game" method="get" action="results.php">
<label> Book Name
<input type="text" name="gameTitle" />
</label>
<input type="submit" name="search" value="Search">
</form>
这是我的 PHP;
$gameTitle = $_GET['gameTitle'];
$gameTitle = preg_replace("#[^0-9a-z]#i", "", $gameTitle);
$sql = "SELECT games.gameTitle FROM games WHERE gameTitle LIKE '%$gameTitle%'";
$Games = mysqli_query($conn, $sql)
or die(mysqli_error($conn));
while ($row = mysqli_fetch_assoc($Games)) {
$gameTitle = $row['gameTitle'];
echo "<div>$gameTitle</div>\n";
}
mysqli_free_result($Games);
mysqli_close($conn);
?>
例如,如果我要搜索一款名为“孤岛惊魂”的游戏,而我只是搜索了“遥远”,它将返回记录。但是,如果我要搜索“Far C”等(两个词),它不会返回记录。即使我搜索全名“孤岛惊魂”也会发生这种情况,但似乎不起作用。
感谢您的帮助。
【问题讨论】:
-
好好看看你的 preg_replace 函数...
-
@Naruto - 谢谢,没有意识到该功能导致它以不同的方式存储。现在让它工作吧。
-
没问题,检查 Giwwel 的答案并将其标记为已接受 :)
标签: php html forms search keyword