php动态表,每行有动态组合框

时间:2011-01-21 10:41:37

标签: php mysql

我遇到动态表的问题,每行都有动态组合框 基本上发生的事情是所有的信息都被拉到一个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>';

提前致谢

4 个答案:

答案 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(模型视图控制器)和关注点分离的内容。