php - 根据选择选项从数据库获取结果

标签 php html mysql

我有一个 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/

相关文章:

php - 获取mysql中价格最高的id

php - 查询结果部分分组

mysql - Amazon Redshift 中的 CREATE TABLE LIKE/AS 中的表权限是否会继承?

javascript - 当一个面板打开时关闭另一个面板

html - 给列表编号的正确方法是什么?

php - 每秒自动数据库读/写

php - 提高MySQL查询速度

javascript - 从 $get 方法切换到 $POST

php - mysqli 左连接重复行

基于另一个文本类内容的 JavaScript url 重定向