2016-04-04 5 views
-2
$sqlList ="select title from podcast order by date_pd desc limit 5"; 
$rslt2 = mysqli_query($conn, $sqlList) or die ("Fail".mysqli_error($conn));   
$record2 = mysqli_fetch_array($rslt2);   
$nRows = mysqli_num_rows($rslt2); 
for ($i=0; $i<$nRows; $i++) { 
     $record2 = mysqli_fetch_array($rslt2); 
     echo $record2["title"]; 
}   

エコー結果がクエリの最初の行をスキップしていますが、何が間違っていますか?mysqlクエリが最初の行をスキップします

+2

「最初の行」とはどういう意味ですか? –

+2

行を数えずにforループを使う代わりに 'while($ record2 = mysqli_fetch_array($ rslt2))'を使ってみることができます。いくつかの問題を救うことができます – Phiter

+0

多分それは日付で6番目ですか? ($ record2 = mysqli_fetch_array($ rslt2)){echo $ record2 ["title"]。このファイルの最初の要素は、次のとおりです。 –

答えて

1

forループの前に配置された$record2 = mysqli_fetch_array($rslt2);行を削除します。

新しいコードは次のようになります。

$sqlList ="select title from podcast order by date_pd desc limit 5"; 
$rslt2 = mysqli_query($conn, $sqlList) or die("Fail".mysqli_error($conn));     
$nRows = mysqli_num_rows($rslt2); 
for ($i=0; $i<$nRows; $i++) { 
    $record2 = mysqli_fetch_array($rslt2); 
    echo $record2["title"]; 
} 
+0

オプス、それを見ていない、ありがとう! – MSV123

2

あなたが道を最初の行を読んで、それを投げるため@Anantが言うように/それを

$sqlList ="select title from podcast order by date_pd desc limit 5"; 
$rslt2 = mysqli_query($conn, $sqlList) or die ("Fail".mysqli_error($conn));   

// this line gets the first row of your result set 
// and you just ignore it therefore throw it away 
$record2 = mysqli_fetch_array($rslt2);   

$nRows = mysqli_num_rows($rslt2); 

for ($i=0; $i<$nRows; $i++) { 
     $record2 = mysqli_fetch_array($rslt2); 
     echo $record2["title"]; 
}   

を無視し、あなたの結果の最初の行を失うされています結果セットが空であるかのように、whileを使用することをお勧めします。単に何もしません。間違いなく必ずしも有利ではない。

$sqlList ="select title from podcast order by date_pd desc limit 5"; 
$rslt2 = mysqli_query($conn, $sqlList) or die ("Fail".mysqli_error($conn));   

while ($record2 = mysqli_fetch_array($rslt2)) { 
     echo $record2["title"]; 
}   
関連する問題