【问题标题】:How do I echo SQL data from database table into a <select> form?如何将数据库表中的 SQL 数据回显到 <select> 表单中?
【发布时间】:2014-01-22 10:29:40
【问题描述】:

不知道有没有人可以帮忙。

我正在尝试将一些 SQL 数据回显到 &lt;select&gt; 表单中,每个 &lt;option&gt; 与表中的行不同。

例如,如果我的表有两列“用户名”和“类别”,并且同一用户名有两行,其中包含数据:

“用户名:test,类别:test1。”

&第二行为:

“用户名:test,类别:test2。”

如何将“test1”和“test2”作为选择表单中的两个选项回显?

表名是'testtable',所以我当前的$sql查询是("SELECT 'category' FROM 'testtable' WHERE 'username = \'$user\'")

$user 当前设置为$_SESSION['username']

代码示例将非常有用,非常感谢。我似乎无法让他们回应我在论坛上找到的示例。

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    试试这个

    <select name="your_select_name" id="your_select_id">
        <option value="">Select</option>
        <?php
            $username = $_SESSION['username'];
            $res = mysql_query("SELECT `category` FROM `testtable` WHERE `username` = '$username' ") or die(mysql_error());
            while($row = mysql_fetch_assoc($res))
            {
                echo '<option value="'.$row['category'].'">'.$row['category'].'</option>';
            }
        ?>
    </select>
    

    更新 2:

    对于不同的类别使用这个

    $res = mysql_query("SELECT DISTINCT(`category`) as category FROM `testtable` WHERE `username` = '$username' ") or die(mysql_error());
    

    $res = mysql_query("SELECT `category` FROM `testtable` WHERE `username` = '$username' GROUP BY category ") or die(mysql_error());
    

    【讨论】:

    • 嗨 Satish,感谢您的评论。我现在就试一试。将及时向大家发布。再次感谢。
    • 嗨 Satish 我试了一下,但就像下面来自 Roland 的其他代码一样,它会返回空白下拉选项吗?你知道为什么会这样吗?我仔细检查了我的数据库连接,一切似乎都很好,但页面上没有mysql_error()?感谢您迄今为止的帮助!
    • 检查您的会话变量是否设置以及其中的值是什么
    • 你是个天才!我正在调用另一个已经设置了 $username 的脚本!所以我把它设置回 $user.... 非常感谢!真的很感激!
    • 又一个简短的问题对不起...如果我在表单中发布此选项,并且下次我重新填写表单时,我将有一个重复的选项。你知道我怎样才能阻止选项重复吗?
    【解决方案2】:

    试试这个:

    <select>
      <?php while($row = mysql_fetch_array($result)
       {?>
       <option><?php echo $row['category'];?></option>
      <?php }?>
    </select>
    

    【讨论】:

      【解决方案3】:

      您从查询中获得了所有行:

      <?php
      $query = "SELECT category FROM testtable WHERE username = '" . $_SESSION['username'] ."'";
      $result = mysql_query($query);
      $options = array();
      while($row = mysql_fetch_array($result))
      {
          $options[] = "<option>" . $row['category'] . "</option>";
      }
      ?>
      
      <select>
          <?php echo implode("",$options); ?>
      </select>
      

      【讨论】:

      • 您好罗兰,感谢您的回复。我已经尝试过您的代码,但是选项下拉列表显示为空白。你知道为什么会这样吗?
      • while 语句后缺少右括号
      【解决方案4】:

      您的选择查询有一个错误:用户名前的单引号不成对,类别周围的单引号 - 这可能是您做不到的原因吗?

      【讨论】:

        【解决方案5】:
        <?php
        $result = mysql_query($query);
        echo "<select>";
        while($row = mysql_fetch_array($result))
        {
        echo  "<option>".$row['category']."</option>";
        }
        echo "</select>";
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-08-15
          • 1970-01-01
          • 2016-05-22
          • 2018-04-25
          • 2012-02-22
          • 1970-01-01
          • 2021-09-09
          相关资源
          最近更新 更多