我想将查询结果转换为查询的二维数组
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/