2011-03-04 54 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。