2013-03-19 53 views
5

我看到其他人這一問題,但我見過的解決方案不能幫助我,否則我不知道如何使用它們:PMySQL的跳繩第一排

<?php 
$ordre = "nom"; 
$croissance = "ASC"; 

if(isset($_GET["ordre"])){ 
    $ordre = $_GET["ordre"]; 
}; 

if(isset($_GET["croissance"])){ 
    $croissance = $_GET["croissance"]; 
}; 

$con = mysql_connect('localhost','root',''); 
mysql_select_db('sdj_jeux', $con); 
$sql = "SELECT * FROM jeux ORDER BY $ordre $croissance"; 
$result = mysql_query($sql, $con); 
$row = mysql_fetch_array($result); 

$couleurcompteur = 0; 
while ($row = mysql_fetch_array($result)){ 
    $couleurcompteur += 1; 
if($couleurcompteur % 2){ 
    $classe = "pale"; 
} else { 
    $classe = "fonce"; 
    }; 
?> 

我的代碼跳過我的數據庫的第一行,我不明白爲什麼。

回答

9

刪除行:

$row = mysql_fetch_array($result); 

while循環會搶在第一次循環中的第一行。

結果代碼:

<?php 
$ordre = "nom"; 
$croissance = "ASC"; 

if(isset($_GET["ordre"])){ 
    $ordre = $_GET["ordre"]; 
}; 

if(isset($_GET["croissance"])){ 
    $croissance = $_GET["croissance"]; 
}; 

$con = mysql_connect('localhost','root',''); 
mysql_select_db('sdj_jeux', $con); 
$sql = "SELECT * FROM jeux ORDER BY $ordre $croissance"; 
$result = mysql_query($sql, $con); 

$couleurcompteur = 0; 
while ($row = mysql_fetch_array($result)){ 
    $couleurcompteur += 1; 
if($couleurcompteur % 2){ 
    $classe = "pale"; 
} else { 
    $classe = "fonce"; 
    }; 
?> 
+2

不會促進'mysql_ *'命令 – UnholyRanger 2013-03-19 17:42:19

+0

以上偉大附錄從@UnholyRanger。您也應該將此代碼發佈到代碼審查。使用PDO或'mysqli'而不是'mysql_ *'。 – 2013-03-19 17:52:15

4

就在這裏是你的問題:

$row = mysql_fetch_array($result); 

$couleurcompteur = 0; 
while ($row = mysql_fetch_array($result)){ 

您的while之前調用mysql_fetch_array()一次。這會拋出第一行,因爲你不使用它。刪除那個不需要的電話。

注意:請勿使用MySQL_ *,因爲它已從PHP 5.5開始棄用。使用MySQLi_ *或PDO代替