我正在尝试从mysql填充下拉列表值并在html表的td中显示它,我尝试使用下面的代码,但它没有填充mysql中的值可以帮助我如何做到这一点。
<table id="CPH_GridView1" style="width:1452px">
<thead>
<tr>
<th style=" width:102px">Clien ID </th>
<th style=" width:100px">Country</th>
<th style=" width:248px">Network Name </th>
<th style="text-align:center; width:102px" >cppn </th>
</tr>
</thead>
<tbody>
<?php
$sql = mysql_query("SELECT * FROM clientpricenotifications");
while($rows=mysql_fetch_array($sql))
{
if($alt == 1)
{
echo '<tr class="alt">';
$alt = 0;
}
else
{
echo '<tr>';
$alt = 1;
}
echo '<td id="CPH_GridView1_clientid" style="width:140px" class="edit clientid '.$rows["id"].'">'.$rows["clientid"].'</td>
<td id="CPH_GridView1_country" style="width:160px" class="edit country '.$rows['id'].'">'.$rows["country"].'</td>
<td id="CPH_GridView1_networkname" style="width:156px" class="edit networkname '.$rows["id"].'">'.$rows["networkname"].'</td>';
?>
<td>
<select name=' . customer_name . '>
<?php
$query = 'SELECT cppn FROM clientpricenotifications';
$result = mysql_query($query, $db) or die(mysql_error($db));
while ($row = mysql_fetch_assoc($result))
{
echo '<option value="' . $row['id'] . '"> ' . $row['cppn'] . '</option>';
}
?>
</select>
</td>
</tr>'
}
&GT?;
答案 0 :(得分:1)
这一行似乎有问题:
<td> <select name='customer_name'>
它实际上不应该这样说:
<td> <select name="customer_name">
或者:
<td> <select name=' . customer_name . '>
并且,该行是包含单引号字符串的echo语句的一部分,但我看不到echo语句的结束单引号的位置。
因此,我认为浏览器会忽略大部分输出,因为标签未正确关闭,因为某些输出正在被破坏。使用查看源检查输出!
答案 1 :(得分:1)
如果您的上述代码已完成,那么我猜您错过了与MySQL服务器的连接。请参阅:http://www.php.net/manual/en/function.mysql-connect.php
有关代码示例的相关问题,请查看答案:Create table with PHP and populate from MySQL
未询问,但您的表格在样式中定义了不匹配的列宽:Clien(t)ID标题102px,而数据单元格为140px。
答案 2 :(得分:0)
另一个值得关注的地方是:
<td style="width:65px" class=" '.$rows["id"].'">
我希望它应该如下:
<td style="width:65px" class="<?php echo $rows["id"] ?>">
正如Vexen Crabtree所提到的,如果您还检查/发布HTML输出的html代码,则可以更容易地诊断问题。