[英]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.