繁体   English   中英

多个下拉值创建SQL查询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中的未定义索引:按钮

提交按钮问题


差不多完成了,感谢到目前为止的所有帮助。

我需要怎么做才能得到结果并打印出来???

请阅读有关SQL注入的信息 它们会破坏您的生活。

我认为您正在尝试在以下行中访问“课程”,并且未定义它:

$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM