2012-06-25 40 views
1

使用Wordpress并使用其功能查询两个定制表上的数据库。我试图以“树/分组”格式输出数据。例如:Wordpress定制查询两个表以获取分层数据

Team Name One 
- Player Name One 
- Player Name Two 
- Player Name Three 
- Etc... 

Team Name Two 
- Player Name one 
- Player Name Two 
- Player Name Three 
- Etc... 

我不确定需要什么才能使结果以这种方式显示。这里是一个查询我有一个连接表...

global $wpdb; 
$user_id = '1'; 
$teamlist = $wpdb->get_results($wpdb->prepare( 
" 
SELECT 
fv_teams.team_id AS team_teamid, 
fv_players.player_id, 
fv_teams.team_name AS teamname, 
fv_players.player_fname AS fname, 
fv_players.player_lname AS lname, 
fv_players.player_team AS team, 
fv_players.player_position AS position 
FROM 
fv_teams 
INNER JOIN fv_players ON fv_teams.team_id = fv_players.team_id 
WHERE 
fv_teams.user_id = %d 
", 
$user_id 
), OBJECT); 

我一定可以得到结果执行以下操作...

foreach ($teamlist as $teamrow) 
{ 
echo 'Team: ' . $teamrow->teamname . '<br />'; 
echo 'Player ID: ' . $teamrow->fname . '<br />'; 
} 

但球队的名称将在结果

被复制
Team Name One 
- Player One 
Team Name One 
- Player Two 
Team Name One 
- Player Three 
- Etc... 

我相当肯定我需要在那里添加一个嵌套循环,但我不确定所需的编码。

任何想法或方向都会对那些刚刚失去大部分头发的人非常有帮助。 ; )

回答

3

不知道的礼仪回答自己的问题,但我能得到什么,我需要基于一个循环嵌套在第二个查询。

$teamlist = $wpdb->get_results($wpdb->prepare( 
"SELECT * 
FROM fv_teams 
WHERE user_id = '1' 
", 
$user_id 
), OBJECT); 


foreach ($teamlist as $teamrow) 
{ 
$get_team_id = $teamrow->team_id; 
echo '<hr>'; 
echo '<h2>' . $teamrow->team_name . '</h2>'; 
$playerlist = $wpdb->get_results($wpdb->prepare( 
    "SELECT * 
    FROM fv_players 
    WHERE team_id = %d 
    ", 
    $get_team_id 
), OBJECT); 


    echo '<ul>'; 
    foreach ($playerlist as $playerrow) 
    { 
     echo '<li>Player Name: ' . $playerrow->player_fname . '</li>'; 
    } 
    echo '</ul>'; 
} 

它需要清理,但对我有用。

0

你需要在teamid上有一个Group by

例子:http://www.techonthenet.com/sql/group_by.php

编辑,你需要写两个循环。

<?php 
// in plain language 
if(TeamName has another value) 
    display name; 
    if (playername has another value) 
    display playername; 
    end if 
end if 
?> 
+0

感谢您的回复。通过将结果限制在团队数量来进行组合。假设有3支队伍。然后结果是三行数据(每个团队下的玩家数据根本不是结果)......让我加上我的问题并举另一个例子。 – joeyd

+0

是的,请这样做,因为小组应该将所有球员组合在一起。 –

+0

好的......我想我能用不同的方法得到结果。试图找出如何发布。 – joeyd