8

我见过其他人有这个问题,但我看到的解决方案对我没有帮助,或者我不知道如何使用它们: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";  
    };
?>

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

4

2 回答 2

12

删除行:

$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";  
    };
?>
于 2013-03-19T17:37:56.460 回答
4

这是你的问题:

$row = mysql_fetch_array($result);  

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

mysql_fetch_array()while. 这会抛出第一行,因为您不使用它。删除那个不需要的电话。

注意:不要使用 MySQL_*,因为它在 PHP 5.5 中已被弃用。改用 MySQLi_* 或 PDO

于 2013-03-19T17:38:53.013 回答