gpt4 book ai didi

php - 很难从两个表中获取数据

转载 作者:行者123 更新时间:2023-11-29 05:38:10 25 4
gpt4 key购买 nike

作为一个自学的(糟糕的)PHP 编码员,我已经用尽了所有试错的可能性,所以我谦虚地请求你的帮助,解决我在编写社区在线“竞价”游戏时遇到的一个小问题。

我的数据库中有两个表 - 一个称为 DCO_sponsors,列出了 ID 列表、相关的(虚拟!)金钱、可用性计数器和(如果它们已经与团队关联)团队的 ID .

结构:id, amount, available, team_id

第二个表 DCO_bids 列出了团队为赢得上述赞助商的“出价”。它包括一个投标 ID、团队 ID、一个“part_b”,在这种情况下是赞助商 ID(其他流程使用同一个表)、一个描述投标类型的概念字段(例如“赞助”)和最后是出价金额和当前状态的两个字段(A 表示有效,W 表示等待/待定等)。

结构:id, team_id, part_b, concept, bid, status

我想要实现的是网站向我(管理员)显示 DCO_sponsors 表中所有赞助商的列表,按金额排序,旁边是出价最高的团队的 team_id(团队只有四个“赞助商”,并且首先获得最高的收入,所以我按金额顺序查看它们很重要)。

我生成的代码如下:

            echo "<table>";
echo "<tr><th width=30>Id</th><th width=100>Amount</th><th width=220>Team</th><th width=100>Offer</th><th></th><th></th><th></th></tr>";

$data = mysql_query("SELECT id, amount FROM DCO_sponsors WHERE available='1' ORDER BY amount DESC", $CONNECTW);
while($row=mysql_fetch_row($data))
{
$sp_id = "$row[0]";
$sp_amount = number_format($row[1]);

$teamdata = mysql_query("SELECT team_id, bid FROM DCO_bids WHERE concept='sponsorship' AND part_b='$sp_id' ORDER BY bid DESC", $CONNECTW);
while($row=mysql_fetch_row($teamdata))
{
$team_id = "$row[0]";
$team_bid = number_format($row[1]);
}

// I call the name of the team from another table

$teamlabel = mysql_query("SELECT completename FROM DCO_teams WHERE id='$team_id'", $CONNECTW);
while($row=mysql_fetch_row($teamdata))
{
$teamname = "$row[0]";
}

echo "<tr><td>$sp_id</td><td>&pound;$sp_amount</td><td>$teamname</td><td>$team_bid</td><td><a href='$RKP/kernel/lib/php_lib/action/AC_Bids_Update.php?op=A1&item_id=$item_id'><div id='IC_Tick' title='Sign Round 1 deal with $teamname'></div></a></td><td><a href='$RKP/kernel/lib/php_lib/action/AC_Bids_Update.php?op=A2&item_id=$item_id'><div id='IC_Tick' title='Sign Round 2 deal with $teamname'></div></a></td><td><a href='$RKP/kernel/lib/php_lib/action/AC_Bids_Update.php?op=A3&item_id=$item_id'><div id='IC_Tick' title='Sign Round 3 deal with $teamname'></div></a></td></tr>";

}

echo "</table>";

该行最后一个单元格中的链接是链接到修改其他表格的操作的复选框。

目前,我得到的结果是按金额排序的赞助商列表(应该是这样),但是旁边出现的团队名称对于所有行都是相同的,它不是出价最高的人之一出价金额不是出价最高的人,而只是第一个出价的人。

我花了过去三个晚上的大部分时间来找出我哪里出错了……我希望你能帮忙!

最佳答案

<table>
<tr>
<th width=30>Id</th>
<th width=100>Amount</th>
<th width=220>Team</th>
<th width=100>Offer</th>
<th></th>
<th></th>
<th></th>
</tr>
<? $data = mysql_query("SELECT id, amount FROM DCO_sponsors WHERE available='1' ORDER BY amount DESC", $CONNECTW); ?>

<? while($row=mysql_fetch_row($data)):
$sp_id = $row['id'];
$sp_amount = number_format($row['amount']);

$teamdata = mysql_query("SELECT team_id, bid FROM DCO_bids WHERE concept='sponsorship' AND part_b='$sp_id' ORDER BY bid DESC", $CONNECTW);
while($row=mysql_fetch_row($teamdata))
{
$team_id = $row['id'];
$team_bid = number_format($row['bid']);
}

$teamlabel = mysql_query("SELECT completename FROM DCO_teams WHERE id='$team_id'", $CONNECTW);
while($row=mysql_fetch_row($teamlabel))
{
$teamname = $row['completename'];
}
?>
<tr>
<td><?=$sp_id;?></td>
<td>&pound;<?=$sp_amount;?></td>
<td><?=$teamname;?></td>
<td><?=$team_bid;?></td>
<td><a href='<?=$RKP;?>/kernel/lib/php_lib/action/AC_Bids_Update.php?op=A1&item_id=<?=$item_id;?>'>
<div id='IC_Tick' title='Sign Round 1 deal with <?=$teamname;?>'></div></a></td>
<td><a href='<?=$RKP;?>/kernel/lib/php_lib/action/AC_Bids_Update.php?op=A2&item_id=<?=$item_id;?>'>
<div id='IC_Tick' title='Sign Round 2 deal with <?=$teamname;?>'></div></a></td>
<td><a href='<?=$RKP;?>/kernel/lib/php_lib/action/AC_Bids_Update.php?op=A3&item_id=<?=$item_id;?>'>
<div id='IC_Tick' title='Sign Round 3 deal with <?=$teamname;?>'></div></a></td>
</tr>

<? endwhile; ?>
</table>

您的问题与您最后一次 while 通话有关。您试图再次使用 mysql_fetch_row($teamdata) 而不是 $teamlabel。

此外,作为一项规则,您应该只写出不需要由 php 生成的任何 html。所以我为您分解了这些内容。

关于php - 很难从两个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com