【发布时间】:2016-10-25 01:30:16
【问题描述】:
我已经研究了很长一段时间如何通过其他问题完成这项工作,但我无法完全掌握它。这个链接似乎最相似,但我无法正确实现它,也许它可以帮助某人解决这个问题? MySQL while loop query inside other while loop query
我希望显示一个表格,该表格使用我们数据库中的信息来显示用户的过关投注、过关投注中的游戏以及相关的投注和赔率。我希望它看起来像下面这样:
Parlay ID Home Team Away Team User Wager Odds
Team A Team B
1 Team C name of teams.id = 4 Ridge Robinson 1000 2.0
name of teams.id = 12 name of teams.id = 16
-------------------------------------------------------------------------------------- (<tr> border)
Team C name of teams.id = 4
2 name of teams.id = x name of teams.id = x
-------------------------------------------------------------------------------------- (<tr> border)
我可以很容易地创建这个表来显示每个项目的所有列,但问题是,每个项目都变成了自己的行。正如您在我的示例中看到的那样,每行显示一个过关投注……这意味着每个 PARLAY 只有一个过关投注 ID、一个投注、一个用户、一个赔率等。唯一的多重事件是每次过关的游戏数量可以在 1 或更大之间变化。
我使用 while 循环创建了这个表来循环遍历每个 parlay,但不幸的是,这个表显示了每一列每一行的信息,而不是我在图片中显示的信息。
while($row = $result->fetch_array()) {
$output = '<tr>';
$output .= '<td>'.$row['Parlay ID'].'</td>';
$output .= '<td>'.$row['Home Team'].'</td>';
$output .= '<td>'.$row['Away Team'].'</td>';
$output .= '<td>'.$row['User'].'</td>';
$output .= '<td>'.$row['Wager'].'</td>';
$output .= '<td>'.$row['Odds'].'</td>';
$output = '</tr>';
}
我相信我将不得不在“主队”和“客队”$output 中创建一些辅助循环...有谁知道我怎样才能让它工作,循环将显示我的 PARLAYGAMES 中的所有游戏与每行给出的 Parlay ID 匹配的表,可以像我上面的示例表一样显示它?
我在想类似于下面的事情。我知道格式很糟糕(!),但我不确定如何正确编写它,所以我试图传达我的想法/逻辑。
$output .= '<td>'while(*PARLAY TABLE id = $row['PARLAYGAMES.parlayid']) { echo PARLAYGAMES.gameid }'</td>';
作为参考,我的 DB 表列出了主队和客队的比赛,以及对球队表 id 的引用。
GAMES
id Home Team Away Team
1 10 5
然后我有一个
PARLAY TABLE
id userid wager odds
1 44 1000 2.0
最后,我有一个
PARLAYGAMES TABLE
id parlayid gameid
1 1 1
2 1 4
感谢您的帮助!
编辑
我努力通过不显示所有表列等来使我的示例尽可能简单,因此我们可以将逻辑/代码部分记下来,但我将展示我的整个查询,因为它似乎最有意义这样做:
SELECT
u.first_name AS 'User First Name',
u.last_name AS 'User Last Name',
u.id AS 'User ID',
ht.name AS 'Home Team',
away.name AS 'Away Team',
p.wager AS 'Wager',
p.odds AS 'Odds',
pg.parlayid AS 'Parlay ID',
pg.betinfo AS 'Bet Info',
pg.gameid AS 'Game ID',
g.date AS 'Game Date',
b.betting_site_name AS 'Betting Site'
FROM parlays p
JOIN parlaygames pg ON p.id = pg.parlayid
JOIN games g ON pg.gameid = g.id
JOIN teams ht ON g.home_team = ht.id
JOIN teams away ON g.away_team = away.id
JOIN users u ON u.id = p.userid
JOIN bonuses b ON p.bettingsiteid = b.id
ORDER BY
pg.parlayid,
pg.gameid
【问题讨论】:
-
您当前的查询是什么样的?
-
嗨,迈克尔...我刚刚添加了它。为了在我的编辑中重申我的观点,我努力使我的示例尽可能简单,但我继续并附加了整个 SELECT 查询,因为我认为它可能会有所帮助。谢谢
标签: php mysql foreach while-loop