我有一个 php 生成的选择列表。我正在尝试根据用户选择的选项从数据库中获取结果。列表本身工作正常,直到我遇到 undefined index 错误,此时我使用 isset() 修复了它。现在该值恢复为表中最后添加的值。另外,这是我遇到的主要问题,查询的结果始终是添加到表中的最后一个值。
如果我可以深入挖掘问题的基础,那就是:如何设置查询以根据所选选项从表中检索结果?即
SELECT course_name,course_duration,course_id FROM WHERE course_name='$_POST['courses']'
PHP 文件:
<?php
include 'mysqlconnect.php';
if ($db_found) {
$sql = "SELECT course_id,course_name,course_duration FROM course";
$result = mysql_query($sql);
}
?>
<p>
<label>Select Course:</label>
<select name="courses" id="courses">
<?php
//generate options in select list
while ($field=mysql_fetch_assoc($result)) {
//get values for later use.
$course_name=$field['course_name'];
$course_ID=$field['course_id'];
$course_duration=$field['course_duration'];
echo "<option value='".$course_name."'";
if($course_name==isset($_POST['courses'])) {echo ' SELECTED';}
echo '>' .$course_name.'</option>';
}
?>
</select>
</p>
最佳答案
首先:
isset()
如果您传递的变量已设置或未设置,则仅返回“true”或“false”。所以尝试一下:
if($course_name == $_POST['courses']) ...
编辑:你还应该做一个
<form>
当用户更改选择列表的值时提交表单。提交时,选择列表的值将提交给您的脚本。然后尝试SQL语句:
SELECT course_name,course_duration,course_id FROM course WHERE course_name='$_POST['courses']'
关于php - 根据选择选项从数据库获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25914391/