我试图使用选择列表来主动筛选从我的SQL数据库中获得的结果。例如,如果我从我的选择列表中选择“Yankees”,我希望我的SQL查询仅显示Yankee球员。通过HTML实现MySQL过滤选择
编辑:通过“实时过滤”我的意思是,当用户选择扬基队,费城人,或播音员时,选择列表将只显示该类别下的名称。
这是我选择的代码。
<select name="ident" id="ident">
<option value="yankees">Yankees</option>
<option value="phillies">Phillies</option>
<option value="announcer">Announcer</option>
</select>
这是如下(数据库连接后)的代码:while语句的作品来填充我的第二个选择列表(名称)如果我手动放在名字
<?php
$ident = $_POST['ident'];
$query = @mysql_query('SELECT name, id FROM grade ORDER BY name asc WHERE ident="' . $ident . '"');
echo "<select name='name'>";
while ($temp = mysql_fetch_assoc($query)) {
echo "<option>".htmlspecialchars($temp['name'])."</option>";
}
echo "</select>";
?>
我知道,但我不确定我是否可以正确地对列表进行实时过滤。
在此先感谢。
此代码是容易受到SQL注入。 – ceejayoz 2011-06-13 13:55:48
不是我的问题,但没关系。你愿意详细说明这一点,告诉我究竟是什么错误? – tnw 2011-06-13 13:56:47
恶意用户可能会发布允许他们执行任何SQL查询的无效数据,包括删除您的表。在查询中使用之前,您需要在'$ ident'上使用'mysql_real_escape_string'。 – ceejayoz 2011-06-13 13:58:32