【问题标题】:Select option from dropdown menu with PHP and mySql使用 PHP 和 mySql 从下拉菜单中选择选项
【发布时间】:2013-12-15 03:47:40
【问题描述】:

我尝试从 MySQL 数据库创建一个简单的选择下拉菜单。但是,它不适用于我的代码。

这是我的代码:

            <?php
              mysql_select_db($database_conn, $conn);
              $query_RsCourse = "SELECT * FROM tbl_course ORDER BY courseid DESC";
              $RsCourse = mysql_query($query_RsCourse, $conn) or die(mysql_error());
              $totalRows_RsCourse = mysql_num_rows($RsCourse);
              $count=0;
              while ( $row = mysql_fetch_array($RsCourse, MYSQL_ASSOC)) {
              $courseid=$row["courseid"];
         $count++;  
              }
             ?>

            <tr>
            <td bgcolor="#CCCCCC">&nbsp;Course Name</td>
            <td bgcolor="#dfdfdf">&nbsp;<select name="courseid">
            <option value="" SELECTED>Selected Course</option>      
            <option value="<?php echo $courseid; ?>"><?php echo $row_RsCourse['$courseid']; ?></option>
            </select>
            </td>
            </tr>

任何建议将不胜感激!

【问题讨论】:

  • 在构建选择选项之前,您将在 while 循环中覆盖 $courseid,因此您只会获得 $courseid 的最后一个值
  • 那么我可以对我的代码做什么?谢谢。
  • 你从哪里得到$row_RsCourse['$courseid'];

标签: php mysql select drop-down-menu option


【解决方案1】:
 <?php

 echo '<tr>
        <td bgcolor="#CCCCCC">&nbsp;Course Name</td>
        <td bgcolor="#dfdfdf">&nbsp;';

        mysql_select_db($database_conn, $conn);
        $query_RsCourse = "SELECT * FROM tbl_course ORDER BY courseid DESC";
        $RsCourse = mysql_query($query_RsCourse, $conn) or die(mysql_error());
        $totalRows_RsCourse = mysql_num_rows($RsCourse);
        if($totalRows_RsCourse)
        {
        echo '<select name="courseid"><option value="" SELECTED>Selected Course</option>';
            $count=0;

            while ($row = mysql_fetch_array($RsCourse, MYSQL_ASSOC))
            {
            $count++;
            echo '<option value="'.$row['courseid'].'">'.$row['courseid'].'</option>';
            }
            echo '</select>';
        }
        else
        {
        echo 'No courses to show yet.'; // no rows in tbl_course
        }
        echo '</td>
            </tr>';

?>

那是一团糟,但希望你能继续使用这些新代码。享受吧。

PS:这部分&gt;'.$row['courseid'].'&lt;/option&gt;你可以根据你的表结构改成新的,这里没有显示。

<?php

 echo '<tr>
        <td bgcolor="#CCCCCC">&nbsp;Course Name</td>
        <td bgcolor="#dfdfdf">&nbsp;';

        mysql_select_db($database_conn, $conn);
        $query_RsCourse = "SELECT * FROM tbl_course ORDER BY courseid DESC";
        $RsCourse = mysql_query($query_RsCourse, $conn) or die(mysql_error());
        $totalRows_RsCourse = mysql_num_rows($RsCourse);


        echo '<select name="courseid"><option value="" SELECTED>Selected Course</option>';
            $count=0;

            while ($row = mysql_fetch_array($RsCourse, MYSQL_ASSOC))
            {
            $count++;
            echo '<option value="'.$row['courseid'].'">'.$row['courseid'].'</option>';
            }
            echo '</select></td>
            </tr>';

?>

【讨论】:

  • 是的。我试图回显“”;它能够显示在屏幕上。但是,它无法出现在选择下拉菜单中。
  • 是的,我预料到了,这就是我给你那个代码的原因。好吧,您的 tbl_course 中有任何行/数据吗??????你能在里面通过 phpmyadmin 看到任何数据吗???
  • 可以用while命令单独做代码吗?我有表格可以在其他 php 寻呼机中发布。谢谢。
  • 这段代码是可操作的麻猴。如果您看到“还没有要显示的课程”,这意味着:a)您在“tbl_course”中没有任何数据,或者 b)这是 mysql 查询错误。但是下面是干净的“while”代码。:P
  • 感谢您的回复。我复制了你的代码和意大利面来创建新的。它工作正常。但是,我尝试将代码与您的代码分开处理。这是行不通的。该表包括数据。我现在正在尝试解决这个问题。
【解决方案2】:

您可以将所有内容存储在缓冲区中,然后在下面的选择中立即打印:

    <?php
      mysql_select_db($database_conn, $conn);
      $query_RsCourse = "SELECT * FROM tbl_course ORDER BY courseid DESC";
      $RsCourse = mysql_query($query_RsCourse, $conn) or die(mysql_error());
      $coursesHtml = "";
      while ( $row = mysql_fetch_array($RsCourse, MYSQL_ASSOC)) {
        $coursesHtml .= "<option value='{$row["courseid"]}'>{$row["coursename"]}</option>";
      }
     ?>

    <tr>
    <td bgcolor="#CCCCCC">Course Name</td>
    <td bgcolor="#dfdfdf">
    <select name="courseid">
    <option value="" SELECTED>Selected Course</option>      
    <?= $coursesHtml  ?>
    </select>
    </td>
    </tr>

PS:避免使用 &amp;nbsp; ,使用 padding-left: 5px; 或其他功能使用 css 为您的 html 设置样式;

PS2:你不应该用表格结构来展示你的页面/表单,使用带有 flexbox 的 div。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多