使用PHP代码仅显示数据库中列中的一些值

使用PHP代码仅显示数据库中列中的一些值,php,mysql,sql,database,Php,Mysql,Sql,Database,我在数据库中有5个表。数据库用于统计足球运动员及其关系数据库 一个表是球员的,第二个表是俱乐部的,第三个表是赛季的,第四个表是球员的数据,第五个表是连接俱乐部和赛季的 我做的每件事都很完美,除了一件事。我想在站点上粘贴数据库中的值。举个例子,我要讲的是1923赛季,那个赛季联盟中有6家俱乐部。在底部页面,我有一部分页面,我将显示球员的统计数据(名字、姓氏、应用程序和那个赛季的目标)。这很有效,但不是我想要的。这是对所有球员的回应,我想把这些球员分为第一名俱乐部和他的球员,然后是第二名和他的……等

我在数据库中有5个表。数据库用于统计足球运动员及其关系数据库

一个表是球员的,第二个表是俱乐部的,第三个表是赛季的,第四个表是球员的数据,第五个表是连接俱乐部和赛季的

我做的每件事都很完美,除了一件事。我想在站点上粘贴数据库中的值。举个例子,我要讲的是1923赛季,那个赛季联盟中有6家俱乐部。在底部页面,我有一部分页面,我将显示球员的统计数据(名字、姓氏、应用程序和那个赛季的目标)。这很有效,但不是我想要的。这是对所有球员的回应,我想把这些球员分为第一名俱乐部和他的球员,然后是第二名和他的……等等。6.类似这样的:

club. 
CLUB 1
players from that club with statiscits for that season
CLUB 2
...
etc
如何使用PHP实现这一点,或者我必须修改我的sql查询。我可以检索俱乐部的id和俱乐部的名称,但它不工作,如果其他?! 这是php代码

<?php
    include('connect-mysql.php');
    $sqlcom = "SELECT jos_players.firstName, jos_players.lastName,jos_players.playerpic, jos_playerstats.idClub, jos_playerstats.idSeason, jos_igraciDB_club.name, jos_playerstats.apps, jos_playerstats.goals, jos_players.idPlayer
    FROM `jos_playerstats` 
    LEFT JOIN `jos_igraciDB_club` ON `jos_playerstats`.`idClub` = `jos_igraciDB_club`.`idClub` 
    LEFT JOIN `jos_igraciDB_season` ON `jos_playerstats`.`idSeason` = `jos_igraciDB_season`.`idSeason` 
    LEFT JOIN `jos_players` ON `jos_playerstats`.`idPlayer` = `jos_players`.`idPlayer` 
    ORDER BY CASE position
    WHEN 'Vratar' THEN 1
    WHEN 'Bek' THEN 2
    WHEN 'Half' THEN 3
    WHEN 'Navala' THEN 4
    END";

    $result = mysql_query($sqlcom);
    while($row=mysql_fetch_assoc($result))
    {
     $fname = $row['firstName'];
     $lname = $row['lastName'];
     $nick = $row['nickName'];
     $apps = $row['apps'];
     $goals = $row['goals'];
     $position = $row['position'];
     $img = $row['playerpic'];
     $idpl = $row['idPlayer']; 

     echo '{modal igraci/article/'.$idpl.'|width=500|height=400|title='.$lname.' '.$fname.'}'.$fname.' '.$lname.' ('.$apps.'/'.$goals.'){/modal}   '; 

      }
?>

我为每个团队找到了单独的while循环解决方案。这就是解决方案,如果有些人有更好、更简单的解决方案,而没有太多的while循环,请张贴在这里。这是三个俱乐部的例子:

$result1 = mysql_query($sqlcom);
$result2 = mysql_query($sqlcom);
$result3 = mysql_query($sqlcom);
while($row=mysql_fetch_assoc($result1))
{
if ($row['idClub'] == 2)
{
echo '{modal igraci/article/'.$row['idPlayer'].'|width=500|height=400|title='.$row['lastName'].' '.$row['firstName'].'}'.$row['firstName'].' '.$row['lastName'].' ('.$row['apps'].'/'.$row['goals'].'){/modal} ; '; 
}
}while($row=mysql_fetch_assoc($result2))
{
if ($row['idClub'] == 14)
{
echo '{modal igraci/article/'.$row['idPlayer'].'|width=500|height=400|title='.$row['lastName'].' '.$row['firstName'].'}'.$row['firstName'].' '.$row['lastName'].' ('.$row['apps'].'/'.$row['goals'].'){/modal} ; '; 
}
}
while($row=mysql_fetch_assoc($result3))
{
if ($row['idClub'] == 4)
{
echo '{modal igraci/article/'.$row['idPlayer'].'|width=500|height=400|title='.$row['lastName'].' '.$row['firstName'].'}'.$row['firstName'].' '.$row['lastName'].' ('.$row['apps'].'/'.$row['goals'].'){/modal} ; '; 
}
}

与问题相关的

在回答这个问题时,你提出了三次问题。您可以通过只触发一次来简化代码。此外,您还可以为每个俱乐部迭代
$result1
。您可以重置指针-至少mysqli支持它

推荐开关


<> P>不要使用MySQL,我建议使用MySQL或PDO。

谢谢,我会考虑向MyQLI切换……只需添加评论,您如何在MyQLI中重置指针来进行迭代?重置为空还是?!根据需要,必须调用data_seek函数并传递0<代码>while($row=$result1->fetch_row()){}$result->data_seek(0)