【发布时间】:2021-10-19 09:39:10
【问题描述】:
这是我当前的代码。我正在尝试将来自两个单独查询的数据显示到具有多列的单个表中。这里有什么问题?我收到以下错误,
警告:C:\xampp\htdocs\report\new2.php 第 58 行中未定义的数组键 71
警告:尝试访问第 58 行 C:\xampp\htdocs\report\new2.php 中 null 类型值的数组偏移量
echo "<td>" . $data['row2'][$i]['Entity_Name'] . "</td>";
在这一行我得到错误。
<?php
$sql = mysqli_query(
$connection,
"SELECT Entity_Name, Count(Sid)
FROM mq_active_sep21
WHERE Plan_Name != 'Complementary_Package'
GROUP BY Entity_Name
ORDER BY Entity_Name"
);
$sql2 = mysqli_query(
$connection,
"SELECT Entity_Name, Count(Sid)
FROM mq_active_sep21
WHERE Plan_Name = 'Complementary_Package'
GROUP BY Entity_Name
ORDER BY Entity_Name"
);
?>
<html>
<head>
<title>Report Details </title>
</head>
<body>
<h1>Report</h1>
<hr>
<table border = '2'>
<tr>
<th>Entity Name</th>
<th>Total SID</th>
<th>Entity Name</th>
<th>Total SID</th>
</tr>
<?php
$data = array();
while($row = mysqli_fetch_assoc($sql)) {$data['row'][] = $row;}
while($row = mysqli_fetch_assoc($sql2)) {$data['row2'][] = $row;}
$count = count($data['row']);
for($i=0;$i<$count;$i++)
{
echo '<tr>';
if(($i % 2) == 1)
{
echo "<td>" . $data['row2'][$i]['Entity_Name'] . "</td>";
echo "<td>" . $data['row2'][$i]['Count(Sid)'] . "</td>";
}else
{
echo "<td>" . $data['row'][$i]['Entity_Name'] . "</td>";
echo "<td>" . $data['row'][$i]['Count(Sid)'] . "</td>";
}
echo '</tr>';
}
?>
</table>
</body>
</html>
【问题讨论】:
-
第 58 行是哪一行?您问题中的代码只有 55 行。
-
回声“
”。 $data['row2'][$i]['Entity_Name'] 。 " ";回声“”。 $data['row2'][$i]['Count(Sid)'] 。 " "; -
最可能的原因是:您将两个不同查询的行放入
$data。这些查询之间的行数很可能不同,但您只需要$data['row']的长度来循环$data。您可能用完了$data['row2']结果,因此$data['row2'][$i]['Entity_Name']不存在。 -
有什么解决问题的建议 $data['row2'] ?