2013-03-19 13 views
5

Widziałem inne osoby z tym problemem, ale rozwiązania widziałem nie pomagają mi, albo nie wiem jak z nich korzystać: PMySQL pomijanie pierwszym rzędzie

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

Moje kodu jest pomijając pierwszy wiersz mojej bazy danych i nie rozumiem dlaczego.

Odpowiedz

9

usunąć linię:

$row = mysql_fetch_array($result); 

Pętla while weźmie pierwszy wiersz w pierwszej iteracji.

wynikowy kod:

<?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

nie promuj 'mysql_ *' commands – UnholyRanger

+0

Świetny dodatek powyżej z @UnholyRanger. Powinieneś również opublikować ten kod do przeglądu kodu. Użyj PDO lub 'mysqli' zamiast' mysql_ * '. –

4

właśnie tutaj jest problem:

$row = mysql_fetch_array($result); 

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

zadzwonić mysql_fetch_array() raz przed while. To powoduje odrzucenie pierwszego rzędu, ponieważ go nie używasz. Usuń to niepotrzebne połączenie.

UWAGA: Nie używaj MySQL_ *, ponieważ został przestarzały od PHP 5.5. Użyj MySQLi_ * lub PDO zamiast: