我試圖使用選擇列表來主動篩選從我的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