【问题标题】:How to run a while loop for each row of data and echo an array of each column data?如何为每一行数据运行一个while循环并回显每列数据的数组?
【发布时间】:2014-03-05 09:15:10
【问题描述】:

我正在尝试为从我的查询返回的每一行运行一个 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-->

【问题讨论】:

标签: php mysql arrays while-loop


【解决方案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']

【讨论】:

  • &amp;i 应该是 $i。但是这和$col[$i] = $row 有什么区别呢?另外,为什么像数字数组一样从 1 而不是 0 开始数组?
  • @Barmar 好吧,我以索引 1 开始数组只是为了与问题中的示例保持一些相似性(例如:他的变量是 $col1 , $col2 ... 所以我使用起始索引 1有 $col[1] , $col[2] ... );这就是为什么我不只是使用 $col[] = $row[..] ;
【解决方案2】:
$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']);

【讨论】:

  • 感谢您的回复,但我真的不确定如何将其集成到我现有的代码中,似乎 foreach 行上的 '=' 是一个意外字符,我也不确定 $colname 是什么变量声明为
  • 打错字了,应该是=&gt;
  • 您发布的代码看起来像伪代码,所以我不确定如何集成它。我只是展示了构建$column_array 的一般方法,你用它做什么取决于你。
  • 我不确定你是如何判断它是否是伪代码,但我从 PHP 文档中得到了大部分内容。我会继续研究,谢谢回复。
  • 它没有对数据做任何事情,它使用通用列名而不是真实名称等。
猜你喜欢
  • 1970-01-01
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2020-02-12
相关资源
最近更新 更多