【问题标题】:Displaying a column of database in select box在选择框中显示一列数据库
【发布时间】:2014-07-10 22:20:25
【问题描述】:

我有一个名为“fishdata”的 MySQL 数据库,其中有一个名为“Fish”的表,如下所示:


鱼型 | X_B | X_SB |

|沙丁鱼| 1#2#3 | 7#4#6|

|鳕鱼| 3#6#8 | 7#4#6|

|鲶鱼| 4#3#8 | 7#4#6|


我正在尝试将“FishType”列中的所有条目显示为选择框中的选项。这是我的代码:

<html>
<body>
    <select> 
        <?php
            $con=mysqli_connect("localhost","root","root","fishdata");
            // Check connection
            if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
            }
        $sql = "SELECT * FROM Fish";
        $result = mysqli_query($con,$sql)or die(mysqli_error());
            while($row = mysqli_fetch_array($result)) {
            {
            ?>
            <option value = "<?php echo($row['FishType'])?>" >
                <?php echo($row['FishType']) ?>
            </option>
            <?php
            }               
        ?>
    </select>
</body>
</html>

但是,选择框显示没有选项。有什么想法吗?

【问题讨论】:

  • 1.为什么不直接选择Fishtype? 2. 你的 while 循环立即关闭。

标签: php mysql database mysqli


【解决方案1】:
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
 echo "<option value='" . $row['FishType'] . "'>" . $row['FishType'] . "</option>";
}

你的 while 循环旁边多了一个括号。

编辑

<html>
<head></head> 
<body>
    <?php $con = mysqli_connect("localhost","root","root","fishdata"); 
         if (mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); }
         $result = mysqli_query($con, "SELECT FishType FROM Fish");   
         if (mysqli_num_rows($result) > 0){
             echo "Records found";
             echo "<select>";

             while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ 
                 echo "<option value='Test'>Test</option>";
                 echo "<option value=\"" . $row['FishType'] . "\">" . $row['FishType'] . "</option>"; 
             } 
             echo "</select>";
         }
         mysqli_close($con); 
    ?> 
</body>
</html> 

【讨论】:

  • @lm93 嗯,尝试在 while 循环中放置一个硬编码选项,看看它是否甚至在循环中。所以在括号之后做类似&lt;option value='Test'&gt;Test&lt;/option&gt;
  • 现在选择框中的选项显示为“.$row['FishType']。”
  • @lm93,你能告诉我你为此写的代码吗?
  • &lt;html&gt; &lt;select&gt; &lt;?php $con = mysqli_connect("localhost","root","root","fishdata"); if (mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT FishType FROM Fish"); while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ &lt;option value='Test'&gt;Test&lt;/option&gt; echo "&lt;option value='" . $row['FishType'] . "'&gt;" . $row['FishType'] . "&lt;/option&gt;"; } mysqli_close($con); ?&gt; &lt;/select&gt; &lt;/html&gt;
  • @lm93 我会更新我的答案,然后试试看。这不会是最终的答案,但它会帮助我们调试它。
猜你喜欢
  • 1970-01-01
  • 2011-07-11
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 2020-04-25
相关资源
最近更新 更多