将查询结果存储到php数组中以按索引回显结果

时间:2017-08-19 14:05:51

标签: php mysql

我有以下代码,查询2个Mysql列的结果。我想将它们存储在一个数组中。我经历了很多问题和答案,并尝试了很多并管理下面的代码:

$query10 = $conn->query("SELECT CONCAT(step1, ' ', step2) AS A1 FROM workflow1 where nx_version='NX11IP33'");
$array10 = Array();
while( $row = mysqli_fetch_assoc( $query10)){
    $new_array[] = $row; // Inside while loop
}
print_r($new_array);

当前输出:

Array ( [0] => Array ( [A1] => 10 2 ) )

期望的输出:

Array ( [0] => 10 [1] => 2 )

任何帮助。

1 个答案:

答案 0 :(得分:2)

您在SQL查询中将CONCAT()两列专门用于单个列。然后你问为什么他们被连接而不是分开?

答案显然是分别取两个列:

<?php
//...
$query = $conn->query("SELECT step1, step2 FROM workflow1 WHERE nx_version='NX11IP33'");
if ($query) {
    $result = [];
    while($row = mysqli_fetch_assoc($query)) {
        $result[] = $row;
    }
    print_r($result);
}

输出将是这样的:

Array ( 
    [0] => Array ( 
        [step1] => 10
        [step2] => 2 
    ) 
)

如果nx_version是唯一键,那么如果确保您在查询结果中只收到一行,那么您可以简化:{/ p>

<?php
//...
$query = $conn->query("SELECT step1, step2 FROM workflow1 WHERE nx_version='NX11IP33' LIMIT 1");
if ($query) {
    $result = mysqli_fetch_assoc($query);
    print_r($result);
}

输出将是这样的:

Array ( 
    [step1] => 10
    [step2] => 2 
)

最后,如果您更喜欢数字索引而不是关联索引(如问题中所示的结果),请使用mysqli_fetch_row()代替mysqli_fetch_assoc()