[英]Querying MySQL with PHP and javascript drop down menu
我已經看了幾天了,但是還沒有找到解決我問題的方法。 我正在編寫一些PHP,以從在WAMP服務器上設置的MySQL數據庫進行查詢。 我也在學習PHP和HTML javascript,所以兩種語言的語法對我來說還是有點陌生。
我的目標是用Java編寫一個下拉選擇器框,該框允許用戶選擇要應用於選擇查詢的過濾器,如下所示:
SELECT * from exampletable WHERE header = "selected_option"
其中“ exampletable”是SQL數據庫中現有的表,“ header”是該表中的一列,“ selected option”是用戶從下拉菜單中選擇的內容。
我已經嘗試使用$_POST
超全局變量編寫各種HTML形式的動作,這些動作將調用包含SQL查詢的PHP文件,但是似乎沒有任何效果。 任何建議和解決方案示例都將是驚人的。
謝謝!
index.php(index.php是用戶界面的前端)
<!DOCTYPE HTML>
<html>
<form action="search.php" method="post">
<select name="family">
<option value="" selected="selected">Any family</option>
<option value="capacitory">capacitor</option>
<option value="resistor">resistor</option>
<option value="ferrite bead">ferrite bead</option>
</select>
<input name="search" type="submit" value="Search>
</form>
</html>
search.php(search.php接收選定的選項值並將其傳遞到MySQL查詢中)
<!DOCTYPE HTML>
<html>
<head>
<style>
table {
width: 100%;
border-collapse: collapse;
}
table, td, th {
border: 1px solid black;
padding: 5px;
}
th {text-align: left;}
</style>
</head>
<body>
<?php
$con = mysqli_connect('localhost','root','kelly188','mysql');
mysqli_select_db($con,"testv2");
$varfam = $_POST['family'];
$query = "SELECT * FROM testv2 WHERE (family = $varfam)";
$result = mysqli_query($query);
if($result)
{
while ($row=mysql_fetch_array($result)){
echo "<tr>";
echo "<td>".$row['family']."</td>";
}
} else {
die(mysqli_error());
}
?>
</body>
</html>
您應該使用准備好的語句來防止SQL注入。 mysql_fetch_array函數已從最新版本的PHP中刪除。 像下面這樣的東西會更理想。
if ($stmt = $con->prepare("SELECT * FROM testv2 WHERE (family = ?)")) {
$stmt->bind_param("s", $_POST['family']);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>".htmlentities($row['family'])."</td>";
echo "</tr>";
}
$stmt->close();
}
參見PHP文檔: http : //php.net/manual/en/mysqli.prepare.php
的index.php
<form action="search.php" method="post">
<select name="family">
<option value="" selected="selected">Any family</option>
<option value="capacitory">capacitor</option>
<option value="resistor">resistor</option>
<option value="ferrite bead">ferrite bead</option>
</select>
<input name="search" type="submit" value="Search"/>
</form>
search.php中
<?php
//////////////////////////////////
// Connect to database using PDO
$servername = "localhost";
$username = "test";
$password = "";
$dbname = "test_db";
$db_conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,$password);
// End of database connection
////////////////////////////////////
if(isset($_POST['search']))
{
$family = $_POST['family'];
if(empty($_POST['family']))
{
$stmt = $db_conn->prepare("SELECT * FROM testv2");
$stmt->execute();
//we get the data
while($data = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo $data['family'];
echo "<hr>";
}
}
else
{
$stmt = $db_conn->prepare("SELECT * FROM testv2 WHERE family = :family");
$stmt ->bindParam(':family', $family);
$stmt->execute();
//we get the data
while($data = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo $data['family'];
echo "<hr>";
}
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.