这是我目前的代码:
$result = mysql_query("SELECT * FROM characters WHERE namn = 'Jargon'");
while($row = mysql_fetch_array($result))
{
echo "<div class='content_left'>";
echo "<div class='blue_text_header'>Information</div>";
echo "<h1>";
echo $row['Namn'];
echo "</h1>";
echo "<br /><br /><br /><br /><br /><br /><br />";
echo "<div class='red_text_header'>Obekräftade fall</div>";
echo str_replace(',','<br />', $row['unconfirmed']);
echo "</div>";
echo "<div class='content_right'>";
echo "<div class='orange_text_header'>Andra namn</div>";
echo str_replace(',','<br />', $row['Alias']);
echo "<br />";
echo "<br /><br /><br /><br />";
echo "<div class='green_text_header'>Bekräftade fall</div>";
echo str_replace(',','<br />', $row['confirmed']);
}
mysql_close($con);
如你所见,选择要输出的信息是“SELECT * FROM characters WHERE namn = 'Jargon'
”,我希望用户确定应该输出什么,所以我想要一个简单的搜索表单,如果人们写的像“你好”我希望你的“术语”可以用你好的方式切换,如果你得到的话?
如果可以的话,你可以把我的搜索表单和post.php文件都包括在内吗?
答案 0 :(得分:1)
$input_clean = mysql_real_escape_string($input);
$result = mysql_query("SELECT * FROM characters WHERE namn LIKE '%$input_clean%'");
如果$ input =“hello”,你会得到“你好”,“你好世界”,“我说你好”等结果,但你不会得到类似“hi bob”的东西。将此与brettz9关于HTML表单的答案相结合,您就可以获得一个搜索程序。
答案 1 :(得分:0)
您可能希望动态构建查询字符串,例如使用mysql_query(sprintf("SELECT * FROM characters WHERE namn = '%s'",mysql_real_escape_string($myInputVar)));
构建您的查询。只需确保您使用mysql_escape_string
正确地转义用户提供的输入,这样您就不会打开SQL注入攻击!
答案 2 :(得分:0)
将第一行更改为:
if (!isset($_GET['name']) { // Handle a missing name variable in some way
// (if you like you can even include the form on this page itself, allowing
// the page to submit data back to itself, with this isset() check
// determining whether to show the form or process the form)
print "You must enter a name";
exit;
}
$result = mysql_query("SELECT * FROM characters WHERE namn = '".mysql_real_escape_string($name)."'");
...并添加以下表格:
<form action="post.php" method="get">
<label for="name">Name</label><input name="name" id="name"/>
<input type="submit"/>
</form>