2013-03-19 34 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代替