我有以下代码,查询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 )
任何帮助。
答案 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()
。