2013-03-04 63 views
0

我在製作一個足球網站。我有以下表結構:帶條件的mysql_fetch_array

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

我希望把分數變成一個HTML表格。此表僅適用於稱爲暱稱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['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>"; 
  • 而是$行[ 'score2']我需要VS NICKNAME2
  • 而是$行[ 'score3']我需要VS NICKNAME1之間的得分NICKNAME1之間的分數 NICKNAME3
  • 而是$行[ 'score4']我需要VS nickname4
  • 而是$行[ 'score5']我需要VS nickname5
  • NICKNAME1之間的得分NICKNAME1之間的分數

我試過SELECT * FROM season1 WHERE player1='nickname1' AND player2='nickname2'但是它會在表中只顯示player1 vs player2。我想在同一張表中顯示所有4名玩家與player1。

+0

歡迎來到Stack Overflow!請不要使用'mysql_ *'函數來編寫新的代碼。他們不再被維護,社區已經開始[棄用流程](http://news.php.net/php.internals/53799)。看到[紅色框](http://uk.php.net/manual/en/function.mysql-connect.php)?相反,您應該瞭解[準備好的陳述](http://en.wikipedia.org/wiki/Prepared_statement)並使用[PDO](http://php.net/pdo)或[MySQLi](http:// php.net/mysqli)。如果你選擇PDO [這裏是一個很好的教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – War10ck 2013-03-04 18:01:03

回答

0

你需要關注你的循環只在做一排:玩家

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

這隻會輸出的分數。您可以修改它以擁有暱稱標題等等。請注意0​​數組與您的表結構相似。 $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來代替

+0

謝謝。問題是我想發佈player1對所有其他玩家的統計數據。我有一個與p1vsp2,p1vsp3,p1vsp4的html表。這意味着在第一列(p1vsp2)中,我需要類似「如果mysql列名爲player2的單詞nickname2發佈分數」等等。 – 10now 2013-03-05 11:12:47

+0

數據庫中的'p1 vs p2'總是比'p1 vs p3'少一個'ID'?如果是這樣,那麼我的表格示例是不是涵蓋了你想要的內容?如果不是,你怎麼知道誰是P2? – UnholyRanger 2013-03-05 13:38:47

0

假設score1它的播放器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;)

+0

$ row ['score1'],$ row ['score2']不存在。我剛剛在那裏寫了他們來更好地解釋它。這只是所有球員的「得分」。所以我需要像「如果專欄播放器2有單詞nickname2發佈分數」。 – 10now 2013-03-04 18:08:33

+0

我想我明白....編輯 – Hackerman 2013-03-04 18:10:51