2013-04-24 30 views
2

我正在创建一个在线棒球管理游戏,我在本地pc上安装了xxampp,并且我写的代码至今都显示为我喜欢它在本地主机上,但是当我转移这些文件到网络服务器,它显示每行两次 任何人都知道为什么会这样?表格行数据在网络上显示两次

<?php 
include("./Lib/Database.php"); 
$db = new Database(false); 
$query_string = "SELECT * FROM player, team WHERE TeamID AND PlayerTeamID ='".$_SESSION['TEAMID']."'"; 

$db->Query($query_string); 
$db->SelectNextResult(); 
while ($row = $db->SelectNextResult()) { 
echo("<DIV class='ComponentMain' align='center'>"); 
echo("<DIV class='ComponentTitle'>Team Name</DIV>"); 
echo("<BR><TABLE align='center'>"); 
{ 
    echo("<TR bgcolor='#DDDDDD'><TD colspan='6'><A HREF='./Player.php?ID=".$db- >GetResult("PlayerID")."'><DIV class='PlayerName'>".$db->GetResult("PlayerPrenameValue")." ".$db->GetResult("PlayerNameValue")."</DIV></A></TD><TD align='right'><IMG src='./Gfx/Flags/". $db->GetResult("PlayerNationID").".png'/></TD></TR>"); 
echo("<TR><TD> Age:</TD><TD>".$db->GetResult("PlayerAge")."</TD><TD>Potential:</TD><TD>".$db->GetResult("Potential")."</TD><TD>Health:</TD><TD>".$db->GetResult("Health")."</TD></TR>"); 
echo("<TR><TD colspan='5' align='center'><IMG src='./Gfx/Faces/Face.png'/></TD>"); 
{ 
    echo("<TR><TD>Contact:</TD><TD>".$db->GetResult("Contact")."</TD><TD>Power:</TD><TD>".$db->GetResult("Power")."</TD><TD>Vision:</TD><TD>".$db->GetResult("Vision")."</TD></TR>"); 
    echo("<TR><TD>Fielding:</TD><TD>".$db->GetResult("Fielding")."</TD><TD>Intelligence:</TD><TD>".$db->GetResult("Intelligence")."</TD><TD>Speed:</TD><TD>".$db->GetResult("Speed")."</TD></TR>"); 
    echo("<TR><TD>Morale:</TD><TD>".$db->GetResult("Morale")."</TD><TD>Pitching Skill:</TD><TD>".$db->GetResult("Skills")."</TD><TD>Velocity:</TD><TD>".$db->GetResult("Velocity")."</TD></TR>"); 
} 
echo("<TR><TD colspan='5' align='center'>------------------------------------</TD></TR>"); 

} 
echo("</TABLE>"); 
echo("<BR></DIV>"); 
} 
$db->Close(); 
?> 

只要$ DB命令这些都不是问题, 我认为这可能是当我真的不知道因为通常当我做到这一点在其他项目上我没有问题, 这是一个更大的项目,虽然它的第一个类型我试图 它只是相当奇怪,任何意见将不胜感激,另外一个奇怪的事情,我注意到 是在我的这个网站的文件之中,我有一个文件,为webapp定义了一些元素,并在XAMPP没有问题,在Web服务器上,它需要我关闭文件中的开放PHP标记接受类网站大声笑,所以我不知道它的网络服务器?

+0

你检查了你的数据库并且插入了这样的函数:你的数据库中每个条目只有一行 – 2013-04-24 04:36:28

+0

太多{,为什么2X SelectNextResult(); – 2013-04-24 04:48:36

回答

2

,我们在您的查询的问题(我把它拆分成多行,所以它不会滚动出页):

$query_string = "SELECT * FROM player, team " . 
    "WHERE TeamID AND PlayerTeamID = '" . $_SESSION['TEAMID'] . "'"; 

这是我看到:

  • WHERE TeamID将包括任何TeamID不是零。

  • 您正在加入表格playerteam但您没有加入条件。这意味着如果你的数据库有两个团队,每个玩家都会增加一倍。如果你的数据库有三个团队,每个玩家都会增加三倍。等等。

我愿意打赌,你的本地数据库有一个团队,你从Web服务器访问的数据库有两个团队。您的查询应该是这样的:

$query_string = "SELECT * FROM player, team " . 
    "WHERE team.TeamID = player.PlayerTeamID " . 
    " AND player.PlayerTeamID = '" . $_SESSION['TEAMID'] . "'"; 

我猜对了上面的第二行。替换用于将表格连接在一起的列,你会没事的。或者更好的是,使用ANSI连接,因为(a)它们是标准的,(b)它们明确了你的连接逻辑是什么。该查询不完全一样,如上图所示:

$query_string = "SELECT * FROM player " . 
    "INNER JOIN team ON team.TeamID = player.PlayerTeamID " . 
    "WHERE player.PlayerTeamID = '" . $_SESSION['TEAMID'] . "'"; 

你也可以有你的PHP代码的问题,但如果您修复查询首先你会发现他们很快。

最后,建议:在将它们放入PHP代码之前,使用MySQL Workbench或MySQL命令行来测试您的查询。你会节省很多时间。

+0

良好的电话联系,根据需要固定一切,只要他们刚从我今天做的各种测试中遗留的过多的括号,我确实需要清理它,非常感谢 – 2013-04-24 05:10:30

0

看起来你有太多的括号。

地点:

echo("<DIV class='ComponentMain' align='center'>"); 
echo("<DIV class='ComponentTitle'>Team Name</DIV>"); 
echo("<BR><TABLE align='center'>"); 

而前()语句。逻辑是这样的:

<table> 
<tr> 
<?php while($sql = $row) { ?> 
<tr> 
    <td><?php echo $row->stuff; ?></td> 
    <td><?php echo $row->stuff1; ?></td>> 
</tr> 
<?php } ?> 
</tr> 
</table> 

希望它的工作!

0

试试这个代码,什么你看到

include("./Lib/Database.php"); 
$db = new Database(false); 
$query_string = "SELECT * FROM player, team WHERE TeamID AND PlayerTeamID ='".$_SESSION['TEAMID']."'"; 
$db->Query($query_string); 
while ($row = $db->SelectNextResult()) { 
$row->PlayerID; // or $row['PlayerID']; // or $db->GetResult("Contact") 
} 
$db->Close(); 
相关问题