0

私はこのコードをほぼ 1 週間使用していますが、抜け出せないようです。次のようなデータベースから行をフェッチしています。

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>&nbsp;</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'] : '&nbsp;'), '</td>';
               echo '<td align="left">', (isset($data['13']) ? $data['13'] : '&nbsp;'), '</td>';
               echo '<td align="left">', (isset($data['38']) ? $data['38'] : '&nbsp;'), '</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(女) | 13KG(女) | 38kg(女性) | 日にち

23494 5 10 2 7

、しかし、私はとても立ち往生しています。

質問: このような形式でフェッチされた結果をどのように整理できますか?

編集: 問題にもっと焦点を当てるためにデータベースを変更しました: クエリはアカウントごとにフェッチされるため、上記のデータベースのように行が表示されているアカウントは 1 つだけです。

これは $roarr によって生成された配列です:

配列 ( [23494] => 配列 ( [F] => 配列 ( [6] => 2 [38] => 7 ) [E] => 配列 ( [38] => 10 [13] => 5 ) ) )

前もって感謝します

4

1 に答える 1