如何为每行数据运行while循环并回显每列数据的数组?

时间:2014-02-07 19:50:44

标签: php mysql arrays while-loop

我正在尝试为查询返回的每一行运行while循环,同时打印所有垂直列值的数组?到目前为止,这是我的代码,虽然我不确定如何实现数组。

问题是我不希望while循环中的每个列值的数组。基本上我试图显示每个数据库行值的html表行。所以我已经在while循环的行中显示了值,但是如何访问垂直数据列并在我的代码中显示为数组来创建图形。

代码中的评论也是..

<?php
mysql_select_db("db_name", $con);
$qry = "SELECT * FROM tbl_name WHERE col_name='$col_name'";
$result = mysql_query($qry);
    if (!$result) exit("The query didnt succeded");
    else {

    <!-- my while loop using each individual row from the database -->

    while ($row = mysql_fetch_array($result)) {
        $col1   = $row['col-name1'];
        $col2   = $row['col-name2'];
        $col3   = $row['col-name3'];
        $col4   = $row['col-name4'];
        $col5   = $row['col-name5'];

        include 'file_to_be_looped.php';

?>
    <br/>
    <br/>
    <?php 
  }

}

  ?>

<!-- then just get a list of all values from a single column of the same query-->

<?php echo $col1 ?>   <!--this echo produces the last value in the array, so I think im close-->

2 个答案:

答案 0 :(得分:1)

试试这个:

$col=array();
$i=1;
while ($row = mysql_fetch_array($result)) {
        $col[$i]   = $row['col-name1'];
        $i++;

之后你将col1称为$ col [1]

编辑:

也许我误解了:

$col=array(array());
$i=1;
while ($row = mysql_fetch_array($result)) {
        $col[&i]['col-name1']   = $row['col-name1'];
        $col[$i]['col-name2']   = $row['col-name2'];
        $col[$i]['col-name3']   = $row['col-name3'];
        $col[$i]['col-name4']   = $row['col-name4'];
        $col[$i]['col-name5']   = $row['col-name5'];
        $i++;

以后您可以将它们称为$ col [1] ['col-name1']

答案 1 :(得分:0)

$column_array = array('col_name1' => array(),
                      'col_name2' => array(),
                      'col_name3' => array(),
                      'col_name4' => array(),
                      'col_name5' => array());

while ($row = mysql_fetch_assoc($result)) {
    foreach ($row as $colname => $value) {
        $column_array[$colname][] = $value;
    }
}

现在,如果您想查看列中的所有值,您可以执行以下操作:

print_r($column_array['col_name1']);