php mysqli查询选择

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

我有三张不同的桌子 表1保存全年的一般分数 表2和表3是特定于事件的 所有3个字段中唯一的公共字段是成员ID

我需要从表1中为每个成员选择5个最高分结果,并将它们与表2和表3中的1个特定结果相结合 我设法把所有的东西都放在一个临时表中,但是cnt以我需要的方式得到了输出 举例说明我所拥有和需要的

原始代码
$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分钟,我会有反馈