MySQL跳过第一行

时间:2013-03-19 17:36:37

标签: php mysql sql database

我见过其他人遇到过这个问题,但我见过的解决方案并没有帮助我,或者我不知道如何使用它们:P

<?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";  
    };
?>

我的代码正在跳过数据库的第一行,我不明白为什么。

2 个答案:

答案 0 :(得分:10)

删除该行:

$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";  
    };
?>

答案 1 :(得分:4)

这就是你的问题:

$row = mysql_fetch_array($result);  

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

您在mysql_fetch_array()之前拨打while一次。由于您不使用它,因此会抛出第一行。删除那个不需要的电话。

注意:不要使用MySQL_ *因为自PHP 5.5起已弃用。请改用MySQLi_ *或PDO