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()の前に1回電話しwhileます。これは、最初の行を使用しないため、最初の行を破棄します。その不要な呼び出しを削除します。

注意: PHP 5.5で廃止されたため、MySQL_*は使用しないでください。代わりにMySQLi_*またはPDOを使用してください

于 2013-03-19T17:38:53.013 に答える