2015-03-19 96 views
0

enter image description herePHP MYSQL:第一栏作为标题,第二和第三列行

我如何做列,teamname,作为我行的头。

1ShotGG沙尘暴2:

summonername2 
summoner 1 
summoner 2 
summoner 3 
summoner 4 

组#5

Summoner 1 
Summoner 1 

下面是我在代码例如,我想使用PHP想输出该结果PHP。到目前为止,它输出的意外结果。

$query = "SELECT players.id, team.teamname, players.summonername 
     from team 
     INNER JOIN players ON players.team = team.id 
     WHERE team.tourneyid = {$id}"; 
     $result = mysqli_query($conn, $query); 
     while($row = mysqli_fetch_assoc($result)) { 
      if($i == 0) { 
       $heading .= "<h3>". $row['teamname'] ."</h3><table class='table'><tr><th>Summonername</th><th>rank</th></tr>"; 
      }// team header 
      $teams .= "{$heading}<tr><td>". $row['summonername'] ."</td><td>rank</td></tr>"; 
      $i++; 
     } 

回答

1

作为一种替代方法,您也可以使用team name作为收集组内所有值的关键。

您收集他们后,然后相应地呈现出来:

$query = " 
    SELECT players.id, team.teamname, players.summonername 
     FROM team 
     INNER JOIN players ON players.team = team.id 
     WHERE team.tourneyid = {$id} 
"; 

$teams = array(); 
$result = mysqli_query($conn, $query); 
while($row = mysqli_fetch_assoc($result)) { 
    $team_name = $row['teamname']; 
    $summoner_name = $row['summonername']; 
    $teams[$team_name][] = $summoner_name; // continually push same team names under a container 
} 

// then for presentation 
foreach($teams as $team_name => $summoners) { 
    echo "<h3>{$team_name}</h3><br/>"; 
    foreach($summoners as $summoner) { 
     echo "<p>{$summoner}</p><br/>"; 
    } 
} 
+0

如果我想调用$ summoner循环中的召唤者ID,该怎么办?如何才能做到这一点? – 2015-03-20 01:50:22

+0

@PlusOne你只需稍微调整一下,而不是只在收集'while'循环中只推送'summoner name',你可以直接推送整个'$ row',然后你可以自己分组行数组而不是名字,然后在'foreach'里面而不是'$ summoner',现在它会像'echo $ summoner ['id']'等等 – Ghost 2015-03-20 02:58:56

+0

对不起,是否将团队ID(与团队名称在同一行)包含在第一个循环中?我尝试了各种方法,并且我得到了很多无效的结果。 – 2015-03-20 06:55:53

0

要打印每行的标题。您可能需要跟踪当前和最后一排,看看球队是否从最后一排变为当前,并且只打印该车的头部。 P

相关问题