我无法取消部分选项我不想要10,20,50这样的选项,所以我拿出以下代码:
<select name="results">
<option>10</option> <option>20</option> <option>50</option> </select>
和
mysqli_real_escape_string($db,$_GET['results'])
但是一旦我做了搜索引擎停止工作,任何人都知道为什么?
这是原始代码:
<form action="/search.php" method="GET">
<input type="text" name="term" size="50">
<select name="results">
<option>10</option> <option>20</option> <option>50</option> </select>
<input type="submit" value="Search">
</form>
<?php
$db = mysqli_connect('localhost','root', '', 'searchengine');
if(!$db) {
die('sorry we are having some problbems');
}
$sql = mysqli_query(
$db,
sprintf(
"SELECT * FROM searchengine WHERE pagecontent LIKE '%s' LIMIT 0,%d",
'%'. mysqli_real_escape_string($db,$_GET['term']) .'%',
mysqli_real_escape_string($db,$_GET['results'])
)
);
while($ser = mysqli_fetch_array($sql)) {
echo "<h2><a href='$ser[pageurl]'>$ser[pageurl]</a></h2>";
}
mysqli_close($db);
?>
答案 0 :(得分:2)
如果您删除了完全您删除的内容,那么删除mysqli_real_escape_string($db,$_GET['results'])
声明会使您的查询无效。
要让它再次运行,您需要修改您的查询:
$sql = mysqli_query(
$db,
sprintf(
"SELECT * FROM searchengine WHERE pagecontent LIKE '%s' LIMIT 0,20",
'%'. mysqli_real_escape_string($db,$_GET['term']) .'%'
)
);
确保您的LIMIT
符合您的喜好,因为您已经从代码中删除了该选项,因此您无法在运行时更改它。