簡體   English   中英

從 PHP 中的 mySQL 表填充下拉框

[英]Populate a Drop down box from a mySQL table in PHP

我試圖在 PHP 中從 mySQL 查詢的結果填充下拉框。 我在網上查找了一些示例,並在我的網頁上嘗試了它們,但出於某種原因,它們根本沒有填充我的下拉框。 我試圖調試代碼,但在我查看的網站上並沒有真正解釋它,我無法弄清楚每一行代碼是什么。 任何幫助都會很棒:)

這是我的查詢: Select PcID from PC;

您需要確保如果您使用的是 WAMP 之類的測試環境,請將您的用戶名設置為 root。 這是一個連接到 MySQL 數據庫、發出查詢並從表中的每一行輸出<select>框的<option>標記的示例。

<?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>";

?>

下面是使用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>";
?>

由於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>";
}

經過一段時間的研究和失望......我能夠彌補這一點

     <?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>

相信我它有效:)

不需要這樣做:

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

你可以直接這樣做:

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

在頂部首先設置數據庫連接如下:

<?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,請確保選擇字段未隱藏或禁用。

如果您想在下拉列表中同時使用 id 和 name 怎么辦? 這是代碼:

$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>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM