Я видел других людей с этой проблемой, но решения, которые я видел, мне не помогают, или я не знаю, как их использовать: 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"; }; ?>
Мой код пропускает первую строку моей базы данных, и я не понимаю, почему.
Удалите строку:
$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"; }; ?>
Вот ваша проблема:
$row = mysql_fetch_array($result); $couleurcompteur = 0; while ($row = mysql_fetch_array($result)){
Вы вызываете mysql_fetch_array()
один раз до while
. Это выбрасывает первую строку, так как вы ее не используете. Удалите этот ненужный звонок.
ВНИМАНИЕ. Не используйте MySQL_ *, поскольку он устарел с PHP 5.5. Вместо этого используйте MySQLi_ * или PDO