mysql_fetch_array有条件

时间:2013-03-04 17:56:24

标签: php mysql

我正在制作一个足球网站。我有以下表结构:

season1 (name of the table)
id | player1 | player2 | score

我想把分数放到一个html表中。此表仅适用于名为nickname1的玩家与其他所有玩家。我有这个:

$query = mysql_query("SELECT * FROM season1 WHERE player1='nickname1'") or die(mysql_error());  

while($row = mysql_fetch_array( $query )) {
    echo "<tr><td>"; 
    echo "";
    echo "</td><td>";   
    echo $row['score2'];
    echo "</td><td>"; 
    echo $row['score3']; 
    echo "</td><td>"; 
    echo $row['score4'];  
    echo "</td><td>";   
    echo $row['score5'];  
    echo "</td></tr>"; 
} 
echo "</table> <br>";
  • 而不是$ row ['score2']我需要在nickname1 vs之间得分 nickname2
  • 而不是$ row ['score3']我需要昵称1对比得分 NICKNAME3
  • 而不是$ row ['score4']我需要昵称1对比得分 nickname4
  • 而不是$ row ['score5']我需要nickname1 vs之间的分数 nickname5

我尝试了SELECT * FROM season1 WHERE player1='nickname1' AND player2='nickname2',但之后只会在表格中显示player1与player2。我想在同一张桌子上显示所有4名球员与球员1的比赛。

2 个答案:

答案 0 :(得分:0)

您只需将循环集中在一行:

echo "<table><tr>";
while($row = mysql_fetch_array( $query )) {
    echo "<td>{$row['score']}</td>";
}
echo "</tr></table>";

这只会输出球员的得分。您可以将其修改为具有昵称标题等等。

请注意,$row数组类似于您的表结构。 $row['score']将为您提供自score1不是表格中的列的玩家的分数,$row中不存在。

可能的设计:

echo "<table><tr><th>Player 1</th><th>Player 2</th><th>Score</th></tr><tr>";
while($row = mysql_fetch_array( $query )) {
    echo "<td>{$row['player1']}</td>";
    echo "<td>{$row['player2']}</td>";
    echo "<td>{$row['score']}</td>";
}
echo "</tr></table>";

将输出(取决于数据库中的ID)

Player 1  |  Player 2 |  Score
   p1           p2         0
   p1           p3         0

注意: MySQL_ *已在PHP 5.5中弃用。请改用MySQLi或PDO

答案 1 :(得分:0)

假设得分为1,则为1分:

$query = mysql_query("SELECT * FROM season1 WHERE player1='nickname1'") or die(mysql_error());  

while($row = mysql_fetch_array( $query )) {
echo "<tr><td>"; 
echo "";
echo "</td><td>";   
echo $row['player1']." vs ".$row['player2'].", with a score of: ".$row['score'];
echo "</td></tr>"; 
} 
echo "</table> <br>";

我希望它有所帮助。

Saludos;)