以下に私のコードを示します。すべてではありませんが、重要なことを示しています。注意するためだけに使用されているカスタム関数がいくつかあります。私のコードで実行しているのは、MySQL テーブルを検索し、現在のセッション ユーザー ID に基づいてすべての結果を表示することです。次に、それらの結果をループし、それぞれについて別のテーブルを検索します。これは完全に機能しますが、結果行ごとにテーブルをループして検索することなく、これを行うより良い方法があるかどうかを確認したいだけです
<?php
$table_sql = "SELECT * FROM participation WHERE shop_id = '{$session->user_id}'";
$result = $database->query($table_sql);
$participation = array();
while ($row = $database->fetch_array($result)) {
$participation[] = array (
'shop_id' => $row['shop_id'],
'qpon_id' => $row['qpon_id'],
'distributor_id' => $row['distributor_id']
);
}
$qpons = array();
if (isset ($participation)) {
if (!empty ($participation)) {
foreach ($participation as $qpon) {
$table_sql = "SELECT * FROM qpons WHERE id = '{$qpon['qpon_id']}'";
$result = $database->query($table_sql);
while ($row = $database->fetch_array($result)) {
$qpons[] = array (
'id' => $row['id'],
'service' => $row['service'],
'start_date' => $row['start_date'],
'end_date' => $row['end_date']
);
}
}
}
}
if (isset ($qpons)) {
if (!empty ($qpons)) {
foreach ($qpons as $value) {
echo '<tr>';
echo '<td>' . $value['service'] . '</td>';
echo '<td>' . $value['start_date'] . '</td>';
echo '<td>' . $value['end_date'] . '</td>';
echo '<td>' . $value['id'] . '</td>';
echo '<td class="action_icon"><a href="admin-edit.php?id=' . $value['id'] . '"><img src="images/icons/view.png" alt="View"></a></td>';
echo '</tr>';
}
} else {
echo '<tr>';
echo '<td>No Results Found!</td>';
echo '<td></td>';
echo '<td></td>';
echo '<td></td>';
echo '<td></td>';
echo '<td></td>';
echo '<td></td>';
echo '</tr>';
}
}
?>