在PHP中填充mySQL表中的下拉框

时间:2011-03-04 04:27:46

标签: php mysql

我试图在Php中填充mySQL查询结果的下拉框。我在网上查了一些例子,我已经在我的网页上试过了,但由于某些原因,他们根本就没有填充我的下拉框。我试图调试代码,但在我看过的网站上没有真正解释,我无法弄清楚每行代码。任何帮助都会很棒:)

以下是我的查询:Select PcID from PC;

7 个答案:

答案 0 :(得分:24)

如果您正在使用像WAMP这样的测试环境,则需要确保将用户名设置为root。 以下示例连接到MySQL数据库,发出查询,并从表中的每一行输出<option>框的<select>标记。

<?php

mysql_connect('hostname', 'username', 'password');
mysql_select_db('database-name');

$sql = "SELECT PcID FROM PC";
$result = mysql_query($sql);

echo "<select name='PcID'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['PcID'] . "'>" . $row['PcID'] . "</option>";
}
echo "</select>";

?>

答案 1 :(得分:4)

以下是使用MySqlPHP下拉列表的代码:

<?
$sql="Select PcID from PC"
$q=mysql_query($sql)
echo "<select name=\"pcid\">"; 
echo "<option size =30 ></option>";
while($row = mysql_fetch_array($q)) 
{        
echo "<option value='".$row['PcID']."'>".$row['PcID']."</option>"; 
}
echo "</select>";
?>

答案 2 :(得分:1)

由于mysql_connect已被弃用,请使用mysqli连接和查询:

$mysqli = new mysqli("hostname","username","password","database_name");
$sqlSelect="SELECT your_fieldname FROM your_table";
$result = $mysqli -> query ($sqlSelect);

然后,如果您在同一页面上有多个具有相同值的选项列表,请将值放在数组中:

while ($row = mysqli_fetch_array($result)) {
    $rows[] = $row;
}

然后你可以在同一页面上多次循环数组:

foreach ($rows as $row) {
    print "<option value='" . $row['your_fieldname'] . "'>" . $row['your_fieldname'] . "</option>";
}

答案 3 :(得分:1)

经过一段时间的研究和失望......我能够做到这一点

     <?php $conn = new mysqli('hostname', 'username', 'password','dbname') or die ('Cannot connect to db') $result = $conn->query("select * from table");?>

//insert the below code in the body


    <table id="myTable"> <tr class="header"> <th style="width:20%;">Name</th>
    <th style="width:20%;">Email</th>
       <th style="width:10%;">City/ Region</th>
        <th style="width:30%;">Details</th>
  </tr>
  <?php
   while ($row = mysqli_fetch_array($result)) {

               echo "<tr>";
               echo "<td>".$row['username']."</td>";
               echo "<td>".$row['city']."</td>";
                echo "<td>".$row['details']."</td>";
               echo "</tr>";
           }

     ?>
</table>

相信我的工作:)

答案 4 :(得分:0)

无需这样做:

while ($row = mysqli_fetch_array($result)) {
    $rows[] = $row;
}

您可以直接执行此操作:

while ($row = mysqli_fetch_array($result)) {
        echo "<option value='" . $row['value'] . "'>" . $row['value'] . "</option>";
    }

答案 5 :(得分:0)

在顶部的第一个设置数据库连接如下:

<?php
$mysqli = new mysqli("localhost", "username", "password", "database") or die($this->mysqli->error);
$query= $mysqli->query("SELECT PcID from PC");
?> 

然后在表格

中的HTML中包含以下代码
<select name="selected_pcid" id='selected_pcid'>

            <?php 

             while ($rows = $query->fetch_array(MYSQLI_ASSOC)) {
                        $value= $rows['id'];
                ?>
                 <option value="<?= $value?>"><?= $value?></option>
                <?php } ?>
             </select>

但是,如果您正在使用materialize css或任何其他开箱即用的CSS,请确保未隐藏或禁用选择字段。

答案 6 :(得分:0)

如果要在下拉列表中同时使用ID和名称怎么办?这是该代码:

$mysqli = new mysqli($servername, $username, $password, $dbname);
$sqlSelect = "SELECT BrandID, BrandName FROM BrandMaster";
$result = $mysqli -> query ($sqlSelect);

echo "<select id='brandId' name='brandName'>";

while ($row = mysqli_fetch_array($result)) {
   unset($id, $name);
   $id = $row['BrandID'];
   $name = $row['BrandName']; 
   echo '<option value="'.$id.'">'.$name.'</option>';
 }
 echo "</select>";