2011-03-04 33 views
13

我想從mySQL查詢的結果中填充下拉框,在PHP中。我在網上查了一些例子,我在網頁上試過,但由於某些原因,他們根本沒有填充我的下拉框。我試圖調試代碼,但在我看到的網站上並沒有真正解釋,我無法弄清楚每行代碼。任何幫助將是巨大的:)從PHP中的mySQL表中填充下拉框

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

+0

你知道如何手工編寫下拉框嗎?那將是一個好的開始。另外,您的整個查詢沒有進入頁面。 – 2011-03-04 04:33:45

+0

你是說你需要爲選擇框創建html,並用查詢返回的數據填充選項? – Kyle 2011-03-04 04:34:01

+0

@ Cyber​​mate - 我是PHP的新手@jcomeau_ictx:是的,我知道如何手工編寫下拉框,@ Kyle:我需要PHP代碼,並且從其他評論中我假設我忘記編碼框架下拉框。 – Donnie 2011-03-04 04:40:13

回答

23

您需要確保,如果您使用的是測試環境,比如WAMP設置您的用戶名作爲根。 下面是一個連接到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>"; 

?> 
+0

好吧,我跟着你的代碼,我把它移到服務器上,現在頁面沒有加載,我忘記了一些HTML代碼? – Donnie 2011-03-04 04:37:42

+0

你得到的錯誤是什麼? – wlashell 2011-03-04 04:39:45

+0

我認爲回聲「」; – sush 2011-03-04 04:42:12

2

下面是下降的代碼下使用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>"; 
?> 
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>"; 
} 
0

沒有必要做這個:

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

您可以直接做到這一點:

while ($row = mysqli_fetch_array($result)) { 
     echo "<option value='" . $row['value'] . "'>" . $row['value'] . "</option>"; 
    } 
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> 

相信我,它的工作原理:)

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> 

但是,如果您使用物化css或任何其他開箱即用的CSS,請確保選擇字段不隱藏或d isabled。