我遇到动态表的问题,每行都有动态组合框 基本上发生的事情是所有的信息都被拉到一个mysql 数据库在表意义上运行良好,但与组合框没有关系 问题是表的第一行是完全正确的(组合框和表工作)我想要的 但是以下行不是它们只显示一个值 组合框而不是3,所以我认为它不处理while循环 我正好想知道是否有人有解决方案。
//Check to see if a driver has been assigned
$driver = $row["driver"];
if($driver==""){
$select_driver = 'Select Driver' ;
} else{
$select_driver = $driver;
}
echo ' <tr><td><select name= "stuff"><option value="'.$select_driver.'">'. $select_driver;
while ($row_driver = mysql_fetch_array($dbSearchDriver_result)){
echo '<option value="'.$row_driver["Username"] .'">'.$row_driver["Username"] .'</option>'; //Echo's each driver
}
echo '</option></select></td>';
提前致谢
答案 0 :(得分:2)
看起来你正在使用相同的$ dbSearchDriver_result。
这是一个记录集,以便您每次都这样做:
$row_driver = mysql_fetch_array($dbSearchDriver_result)
它在记录集中的一条记录前进。当您到达记录集的末尾时,它不会返回到第一个记录。你必须明确告诉它。
http://php.net/manual/fr/function.mysql-data-seek.php
您可以尝试:
while ($row_driver = mysql_fetch_array($dbSearchDriver_result)) {
echo ''.$row_driver["Username"] .''; //Echo's each driver
}
mysql_data_seek($dbSearchDriver_result,0);
答案 1 :(得分:1)
问题是:您必须关闭此行中的“选项”标记:
echo ' <tr><td><select name= "stuff"><option value="'.$select_driver.'">'. $select_driver;
答案 2 :(得分:1)
您应该在“选择驱动程序”后关闭<option>
标记,而不是在while
循环后关闭
答案 3 :(得分:0)
首先,数据库相关的东西应该留在一个地方。除了HTML代码之外的任何其他内容。
第1步:创建一个这样的函数:
function query_mysql($ SQL_QUERY){
$data = array();
$result = mysql_query($SQL_QUERY);
while ($row_driver = mysql_fetch_array($result)) {
$data[] = $row_driver;
}
返回$ data;
}
将该函数放入php文件中,以便在需要时包含。
$ myData = query_mysql(“SELECT * FROM table”); //您的查询
$ myData将是一个可以随时使用的数组。 只需在需要时解析它。
PS:阅读有关MVC(模型视图控制器)和关注点分离的内容。