0

我在显示所有按以下方式分组的名称时遇到问题,例如:

这是我的桌子:

IMEPRIIMEK  REZULTAT  EKIPA
------------------------------
Ela         256       e13e01
Joe         218       e13e01
Tim         198       e13e01
Dan         265       e13e02
Jim         256       e13e02
Kim         215       e13e02

使用我制作的代码,我得到了这个结果:

#  EKIPA  TOTAL  IMEPRIIMEK
-------------------------------
                 Dan
1  e13e02  736   Jim
                 Kim
------------------------
                 Ela
2  e13e01  672   Joe 
                 Tim

这是我的代码:

<?php

$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("paradox", $con);

$result2 = mysql_query("SELECT NazivEkipe, ImePriimek, Rezultat,
                        SUM(Rezultat) AS 'total'
                        FROM tekmovanje
                        WHERE NazivEkipe='e13e01' OR NazivEkipe='e13e02' OR NazivEkipe='e13e03' OR NazivEkipe='e13e04' OR NazivEkipe='e13e05'
                        GROUP BY NazivEkipe
                        ORDER BY total DESC") or die(mysql_error());
$rank = 0;
while($row = mysql_fetch_array ($result2))
{
$rank++; 
?>

<tr align="center" valign="middle">
     <td rowspan="3" align="center" valign="middle"><?php echo $rank; ?></td>

     <td rowspan="3" align="center" valign="middle" style="font-weight: bold; color: #008AFF;"><?php echo $row['total']; ?></td>

     <td rowspan="3" align="center" valign="middle"><?php echo $row['NazivEkipe']; ?></td>
<tr align="center" valign="middle">
  <td align="center" valign="middle" ><?php echo $row['ImePriimek']; ?></td>
</tr>

<?php
}
?>

</table>

帮帮我,谢谢你的回答。

PS:这个仅供个人使用,不会上线,所以我不关心SQL注入或使用PDO MySQLi做这个

4

3 回答 3

1

您缺少表格标签<table>

试试这个

   SELECT Ekipa , ImePriimek, Rezultat,
                    SUM(Rezultat) AS total
                    FROM tekmovanje
                    WHERE Ekipa in ('e13e01','e13e02','e13e03','e13e04','e13e05')
                    GROUP BY Ekipa 
                    ORDER BY total DESC

在这里演示

或者如果您将分组ImePriimek以显示所有用户

   SELECT Ekipa , ImePriimek, Rezultat,
                    SUM(Rezultat) AS total
                    FROM tekmovanje
                    WHERE Ekipa in ('e13e01','e13e02','e13e03','e13e04','e13e05')
                    GROUP BY Ekipa ,ImePriimek
                    ORDER BY total DESC

在这里演示

编辑。我​​认为这就是你想要的

试试这个

    SELECT Ekipa , group_concat(ImePriimek) as IMEPRIIMEK, Rezultat,
                    sum(Rezultat) AS total
                    FROM tekmovanje
                    WHERE Ekipa in ('e13e01','e13e02','e13e03','e13e04','e13e05')
                    GROUP BY Ekipa
                    ORDER BY total DESC

结果

   _______________________________________
  |  EKIPA  IMEPRIIMEK    REZULTAT TOTAL  |
  | ______________________________________|
  | e13e02  Dan,Jim,Kim     265     726   |
  | e13e01  Ela,Joe,Tim     256     672   |
  |_______________________________________|

在这里看演示

于 2013-03-03T13:48:26.360 回答
0

为什么不只是这个查询?

SELECT EKIPA, sum(REZULTAT), GROUP_CONCAT(DISTINCT IMEPRIIMEK)
FROM yourtable
GROUP BY EKIPA
于 2013-03-03T13:41:57.430 回答
0

我想你想得到每个EKIPA.

SELECT  a.*, b.totalResult
FROM    tableName a
        INNER JOIN
        (
            SELECT  EKIPA, SUM(REZULTAT) totalResult
            FROM    tableName 
            GROUP   BY EKIPA
        ) b ON a.EKIPA = b.EKIPA

结果

╔════════════╦══════════╦════════╦═════════════╗
║ IMEPRIIMEK ║ REZULTAT ║ EKIPA  ║ TOTALRESULT ║
╠════════════╬══════════╬════════╬═════════════╣
║ Ela        ║      256 ║ e13e01 ║         672 ║
║ Joe        ║      218 ║ e13e01 ║         672 ║
║ Tim        ║      198 ║ e13e01 ║         672 ║
║ Dan        ║      265 ║ e13e02 ║         736 ║
║ Jim        ║      256 ║ e13e02 ║         736 ║
║ Kim        ║      215 ║ e13e02 ║         736 ║
╚════════════╩══════════╩════════╩═════════════╝
于 2013-03-03T13:42:56.313 回答