Cedricle
Cedricle

Reputation: 95

MySQL skipping first row

I have seen other people with that problem but the solutions I've seen aren't helping me, or I don't know how to use them :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";  
    };
?>

My code is skipping the first row of my database and I don't understand why.

Upvotes: 8

Views: 4061

Answers (2)

UnholyRanger
UnholyRanger

Reputation: 1971

Right here is your problem:

$row = mysql_fetch_array($result);  

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

You call mysql_fetch_array() once before the while. This throws out the first row since you don't use it. Remove that un-needed call.

NOTICE: Do not use MySQL_* for it has been deprecated as of PHP 5.5. Use MySQLi_* or PDO instead

Upvotes: 4

Connor McArthur
Connor McArthur

Reputation: 241

Remove the line:

$row = mysql_fetch_array($result);

The while loop will grab the first row on the first iteration.

Resulting code:

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

Upvotes: 12

Related Questions