![](/img/trans.png)
[英]How to create an optimized sql query for multiple dropdown filtering in php?
[英]Multiple dropdown values to create SQL query PHP
我目前正在嘗試創建一個表單,其中包含三個下拉選項框和一個提交按鈕。 從數據庫中填充了所有這三個下拉框,我希望將選定的選項包含到新查詢中並進行打印。 此示例僅顯示一個下拉列表
PHP代碼
// Create connection
$con=mysqli_connect('', '', '', '');
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$course_dropdown ="";
$query_course = "SELECT * FROM course";
$result_course = mysqli_query($con,$query_course) or die(mysqli_error());
while($row = mysqli_fetch_assoc($result_course))
{
$course_dropdown .= "<option value='{$row['CourseName']}'{$row['CourseName']} </option>";
}
上面是用於創建下拉列表的代碼
HTML
<form="index.php" method="post">
<select name="Course"><?php echo $course_dropdown; ?></select>
<input name="button" value="Submit" type="submit">
我對前進的方向不知所措,我嘗試了各種不同的技術,但無法給出答案。
最新嘗試
$course = mysqli_real_escape_string($con, $_POST['Course']);
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = $course");
這帶來了一個錯誤
注意:未定義的索引:第33行的C:\\ Users \\ seanin \\ Desktop \\ xampp \\ htdocs \\ index.php中的課程
因此,按照建議進行編輯,並且stil出現錯誤,可能缺少一些小東西。
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$course_dropdown ="";
$query_course = "SELECT * FROM course";
$result_course = mysqli_query($con,$query_course) or die(mysqli_error());
while($row = mysqli_fetch_assoc($result_course))
{
$course_dropdown .= "<option value='{$row['CourseName']}'>{$row['CourseName']}</option>";
}
if ($_POST['button'] == 'Submit') {
$course = mysqli_real_escape_string($con, $_POST['Course']);
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = $course");
}
仍然有這個錯誤
注意:第30行的C:\\ Users \\ seanin \\ Desktop \\ xampp \\ htdocs \\ index.php中的未定義索引:按鈕
提交按鈕問題
差不多完成了,感謝到目前為止的所有幫助。
我需要怎么做才能得到結果並打印出來???
我認為您正在嘗試在以下行中訪問“課程”,並且未定義它:
$course = mysqli_real_escape_string($con, $_POST['Course']);
您可以提交頁面嗎? HTML表單中存在錯誤: <form="index.php"
不是有效的HTML標記,因此您無法提交頁面,也就是說,如果您張貼了正在使用的確切代碼。 您的表格應為:
<form action="index.php" method="post">
<select name="Course"><?php echo $course_dropdown; ?></select>
<input name="button" value="Submit" type="submit">
</form> <!-- and don't forget the closing tag -->
您可以通過執行以下操作來檢查頁面是否已提交:
if ($_POST['button'] == 'Submit') {
$course = mysqli_real_escape_string($con, $_POST['Course']);
// please note the missing single quotes, and please read the first line of my answer
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = '$course'");
}
以下行中還有一個無效的HTML語法:
$course_dropdown .= "<option value='{$row['CourseName']}'{$row['CourseName']} </option>";
<option>
的格式為: <option value="value">label</option>
。
您的下拉列表不起作用的原因是缺少“>”,用此替換while循環內的行
$course_dropdown .= "<option value='{$row['CourseName']}'>{$row['CourseName']}</option>";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.