我想用下拉菜單在SQL表中進行搜索。從Web表單搜索數據庫表
例如,用戶可以選擇顏色,然後它會顯示所有顏色的項目。
這是我的代碼 - 我嘗試使用帶紅色的紅色命令(法語中的rouge)它的工作原理;那麼我試圖使用$couleur
,它不起作用。有人可以檢查我的SQL命令。非常感謝。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<form name="" method="post" action="enquete.php">
<select name="couleur">
<option ></option>
<option value="rouge">rouge</option>
<option value="pink">pink</option>
</select>
</select>
<input type="submit" value="submit" name="submit2" /> <br/>
</form>
</body>
</html>
<?php
//traitement pour decoulant couleur
if (isset($_POST["couleur"]) && $_POST["couleur"]!="0"&& isset($_POST["submit"])){
//connexion avec le serveur
include_once("mesparametres.inc.php");
//récupération données formulaire
$couleur = $_POST["couleur"];
$query = "SELECT * FROM `poisson` WHERE `couleur` LIKE 'rouge'";
$query = "SELECT * FROM `poisson` WHERE `couleur` LIKE '\"$couleur\"'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
// Printing results in HTML
echo "<table border='1' width='300'>\n";
$count = 0;
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
$count++;
echo "\t</tr>\n";
}
echo "</table>\n";
//fermeture connexion avec la BD
mysql_close($idConnectDB);
}
?>
這是一個錯字? 'isset($ _ POST [「submit」])'?當你使用'name =「submit2」'? – 2011-12-23 18:19:59
歡迎來到Stack Overflow!你顯示的代碼容易受到[SQL注入](http://php.net/manual/en/security.database.sql-injection.php)的影響。使用適當的衛生方法(例如'mysql_real_escape_string()'用於傳統的mysql庫),或切換到PDO並準備好語句。 – 2011-12-23 18:20:16
是的,這是一個錯字,感謝 – 2011-12-23 19:02:28