php mysqli查询选择
我有三张不同的桌子 表1保存全年的一般分数 表2和表3是特定于事件的 所有3个字段中唯一的公共字段是成员ID 我需要从表1中为每个成员选择5个最高分结果,并将它们与表2和表3中的1个特定结果相结合 我设法把所有的东西都放在一个临时表中,但是cnt以我需要的方式得到了输出 举例说明我所拥有和需要的 原始代码php mysqli查询选择,php,mysqli,Php,Mysqli,我有三张不同的桌子 表1保存全年的一般分数 表2和表3是特定于事件的 所有3个字段中唯一的公共字段是成员ID 我需要从表1中为每个成员选择5个最高分结果,并将它们与表2和表3中的1个特定结果相结合 我设法把所有的东西都放在一个临时表中,但是cnt以我需要的方式得到了输出 举例说明我所拥有和需要的 原始代码 $prevQuery=“从分数中选择不同的成员id” $prevResult=$conn->query($prevQuery) while($row=$prevResult->fetch_a
$prevQuery=“从分数中选择不同的成员id”代码>
$prevResult=$conn->query($prevQuery)代码>
while($row=$prevResult->fetch_assoc()){
$scores=(“从成员id=”.$id.“按事件排序分数描述限制5”的分数中选择成员id、事件id、事件日期、事件分数”);
查询:
select * from temp_table order by mem_id asc
S.No date score1 date score2 date score3 date score4
1 20/05/2017 100 21/05/2017 103 22/05/2017 106 23/05/2017 108
2 20/05/2017 105 21/05/2017 109 22/05/2017 111 23/05/2017 110
PHP:
select * from temp_table order by mem_id asc
S.No date score1 date score2 date score3 date score4
1 20/05/2017 100 21/05/2017 103 22/05/2017 106 23/05/2017 108
2 20/05/2017 105 21/05/2017 109 22/05/2017 111 23/05/2017 110
您可以像这样简单地在应用程序中实现预期结果
<?php
$result = array(array('mem_id'=>1,'location'=>'A','date'=>'20/05/2017','score'=>100),array('mem_id'=>1,'location'=>'B','date'=>'21/05/2017','score'=>103),array('mem_id'=>1,'location'=>'C','date'=>'22/05/2017','score'=>106),array('mem_id'=>1,'location'=>'C','date'=>'23/05/2017','score'=>108),
array('mem_id'=>2,'location'=>'A','date'=>'20/05/2017','score'=>105),array('mem_id'=>2,'location'=>'B','date'=>'21/05/2017','score'=>109),array('mem_id'=>2,'location'=>'C','date'=>'22/05/2017','score'=>111),array('mem_id'=>2,'location'=>'C','date'=>'23/05/2017','score'=>110));
$new_result=array();
foreach($result as $key=>$row)
{
$new_result[$row['mem_id']][]=$row;
}
echo "<table border='1px'>";
echo "<thead><tr><th>S.No</th><th>date</th><th>score1</th><th>date</th><th>score2</th><th>date</th><th>score3</th><th>date</th><th>score4</th></tr>";
echo "<tbody>";
foreach($new_result as $key=>$row)
{
echo "<tr><td>".$key."</td>";
foreach($row as $key1=>$row1)
{
echo "<td>".$row1['date']."</td>";
echo "<td>".$row1['score']."</td>";
}
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
?>
为什么不在演示层中执行此操作。您希望每个成员获得5个最高分还是5个得分最高的成员?已使用以下命令获得每个成员的前5个得分(“插入临时得分(成员id、事件位置、事件日期、事件得分))从member_id=“.$id.”按事件顺序描述分数限制5”)的分数中选择成员_id、事件_位置、事件_日期、事件_分数;-现在我需要显示每个成员的位置、日期和前5个分数,输出需要显示在图像的底部为什么不选择前5个分数并使用PHP那样显示?如果问题中有您的现有代码,这个问题会更好。TX认为会有帮助,只需添加值,然后从datbase to the arrayyes of Course.如果我的答案有用,请用绿色勾选,这对将来的用户参考很有用@向导可以,给我10分钟,我会有反馈