これが分からなくて困ってます…
私は2つのテーブルを持っています... ticket_winnersとチケット
ticket_winnersテーブルでは、ユーザー名 / プロフィール情報...
チケットテーブルは、これらのユーザーが 1 つのユーザー ID に対して持っているすべてのチケットです。このテーブルには、ユーザーごとに 10 以上のチケットが存在する可能性があります。
質問:テーブルチケットにユーザーごとに複数の行がある場合、データの 2 回目の繰り返しをループするにはどうすればよいですか?
function pullTickets() {
$sql = $this->mysql->retrieve("SELECT * FROM ticket_winners ORDER BY id DESC LIMIT 5");
$sql2 = $this->mysql->retrieve("SELECT id, userId, ticketId FROM tickets ORDER BY id ASC LIMIT 5");
while($row = mysql_fetch_array($sql)) {
$results[$row['id']]['user'] = $row['userId'];
while($row2 = mysql_fetch_array($sql2)) {
if($results[$row['id']]['user'] == $row2['userId']) {
$results[$row['id']]['tickets'][$row2['id']] = $row2['ticketId'];
} else {
}
}
}
return $results;
}
PHP ページの例: 正常に動作します
$data = $obj->pullTickets();
foreach($data as $user) {
echo $user['username'];
foreach($data['ticket'] as $ticket) {
echo $ticket['ticketId'];
}
}
アレイは次のようになります。
[1] => Array
(
[batch] => 1
[userId] => 200
[userName] => Craig
[tickets] => Array
(
[1] => GH7JNm72hN
[2] => JudM3rT3is
[3] => KiLPoXCmDF
)
)
[2] => Array
(
[batch] => 1
[userId] => 100
[userName] => Hewbie
needs to continue looping
)
[1] 配列のように、チケット テーブルは各ユーザーをループしていません。他のすべてのユーザーのチケットをスキップします。