php - 将查询结果转换为二维数组

标签 php mysql arrays

我想将查询结果转换为查询的二维数组

SELECT c.name,c.mobile_number,t.service_time 
FROM CUSTOMER AS c
JOIN TRANSACTION AS t ON c.id = t.customer_id
WHERE t.service_date = '$date' 
AND employee_id = '$employee_id

我得到名称(varchar),手机号码(int)和时间(时间格式)。我写了一些代码,但它不起作用:

$results = array();
echo $num_fields=mysqli_num_fields($array1);
echo $num_rows=mysqli_num_rows($array1);
while($line = mysqli_fetch_array($array1))
{
    for($i=0;$i<$num_rows;$i++)
    {
        for($j=0;$j<$num_fields;$j++)
        {
            $results[$i][$j]=$line[$i][$j];
        }
        }
}

我得到的结果是:

[["k ","a ","r "],["9 ","8 ","7 "],["0 ","2 ",": "]]

输出仅包含第一个字符。我希望二维数组的每一行都有我的查询结果行。

最佳答案

您可以将结果添加到新数组并将mysqli_fetch_array更改为mysqli_fetch_row:

$results = array();

while ($line = mysqli_fetch_row($array1))
{
  $results[] = $line;
}

或者,您可以使用 mysqli_fetch_assoc() 来创建关联数组(例如 $results[0]['name'] 将是 name 第一行的列)。

编辑

如果有重复的列名,您可以使用别名:

SELECT one.name AS one_name,two.name AS Two_name FROM one INNER JOIN 2 USING ...

关联数组将包含 $result[0]['one_name']$result[0]['two_name']

关于php - 将查询结果转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32253596/

相关文章:

php - mySQL - 使用另一个表中的数据。字段来确定查询中的结果

mysql - 如何对这些数据使用 GROUP BY

java - 递归问题 - Java - 高尔夫击球的最小次数

javascript - 使用 Async Await 函数不断返回未定义的数组

php - 取消链接不适用于变量,但适用于精确路径

php - 使用 PHP 访问 Facebook session

php - 计数记录在数据库表中出现的最大次数

Mysql 要求相关性然后按日期排序

MySQL:两位数 0...53 - 使用 TINYINT(2) 或其他方法?

javascript - 多维数组中的最小值和最大值