我已经使用这个代码差不多一个星期了,似乎无法摆脱它。 我从数据库中获取行如下所示:
id |帐户|内容|类型|数量
1 23494 E 38 10
2 23494 E 13 5
3 23494 F 38 7
4 23494 E 6 2
我的声明到目前为止看起来像这样:
// Make the query:
$qu = "SELECT * FROM log WHERE account='".$account."' ORDER BY timelog DESC $pages->limit";
$re = @mysqli_query ($dbc, $qu); // Run the query.
$roarr = array();
while ($row = mysqli_fetch_array($re, MYSQLI_ASSOC)) {
$roarr[$row['account']][$row['content']][$row['type']] = $row['quantity'];
} // End of WHILE loop.
//print_r($roarr);
echo'
<tr> </tr>
<tr>
<td align="left"><b>Account</b></td>
<td align="left"><b>6Kg(E)</b></td>
<td align="left"><b>13Kg(E)</b></td>
<td align="left"><b>38Kg(E)</b></td>
<td align="left"><b>6Kg(F)</b></td>
<td align="left"><b>13Kg(F)</b></td>
<td align="left"><b>38Kg(F)</b></td>
<td align="left"><b>Date Created</b></td>
</tr>
';
$dataarr = array();
foreach($roarr as $account => $dataarr) {
$bg = ($bg=='#eeeeee' ? '#ffffff' : '#eeeeee');
echo '
<tr bgcolor="' . $bg . '">
<td align="left">'. $account .'</td>
';
foreach($dataarr as $content => $data) {
if($content == "E") {
echo '<td align="left">', (isset($data['6']) ? $data['6'] : ' '), '</td>';
echo '<td align="left">', (isset($data['13']) ? $data['13'] : ' '), '</td>';
echo '<td align="left">', (isset($data['38']) ? $data['38'] : ' '), '</td>';
} // Then I GET STUCK on the Else Part! HOW Do I display $content == "F" data on the right hand side?
} //End Foreach
} //End Foreach
这就是我打算显示结果的方式:
帐户| 6KG(E)| 13KG(E)| 38KG(E)| 6KG(F)| 13KG(F)| 38KG(F)|日期
23494 5 10 2 7
,但我很困惑。
问题: 如何安排以这种格式提取的结果?
修改 我已经更改了数据库,以便更多地关注问题:由于查询每个帐户提取,因此只有一个帐户的行显示在上面的数据库中。
这是$ roarr生成的数组:
阵列([23494] =&gt;阵列([F] =&gt;阵列([6] =&gt; 2 [38] =&gt; 7)[E] =&gt;阵列([38] =&gt; 10 [13] =&gt; 5)))
提前感谢
答案 0 :(得分:0)
你需要这样的东西而不是内部的foreach循环:
echo '<td align="left">', (isset($dataarr['E']['6']) ? $dataarr['E']['6'] : ' '), '</td>';
echo '<td align="left">', (isset($dataarr['E']['13']) ? $dataarr['E']['13'] : ' '), '</td>';
echo '<td align="left">', (isset($dataarr['E']['38']) ? $dataarr['E']['38'] : ' '), '</td>';
echo '<td align="left">', (isset($dataarr['F']['6']) ? $dataarr['F']['6'] : ' '), '</td>';
echo '<td align="left">', (isset($dataarr['F']['13']) ? $dataarr['F']['13'] : ' '), '</td>';
echo '<td align="left">', (isset($dataarr['F']['38']) ? $dataarr['F']['38'] : ' '), '</td>';