2011-08-12 9 views
0

この関数をwhileループで使用して結果の数を追跡します。MySQLの結果の数字

$lvarcontributor = "SELECT * FROM dD_Contributors WHERE idAlbum = '".$idAlbum."' ORDER BY idContributor ASC"; 
$lvarresult=mysql_query($lvarcontributor); 
$var = 0; 
while ($lvarrow = mysql_fetch_array($lvarresult)) 
    { 
    $var++; 
//STUFF HERE... 
} 

最終結果はどのように知っていますか? 最後の結果に$ var ++がいつ到着したかを知る必要があります。

If($var == "LAST RESULT") { 
//do this 
} 

THANKS!

+1

あなたは右whileループの後に最後の結果を知っています。 – Jacob

答えて

0

この関数は参考になっことがあります

mysql_num_rows

if (($var + 1) == musql_num_rows($result)) 
{ 
    //this is the last row 
} 
+0

これは最後の結果を与えるのではなく、最後の結果より前のものを返します。 –

+0

if式の直前に$ var ++があるので、そうです。可能な場合はいつでも、ループの最後に配置カウンターを増分するのは良い習慣です。 – Mironor

0
if($var == mysql_num_rows($lvarresult) - 1) { 
    // this is the last row, do your thing 
} 
0

たぶん、あなたはmysql_num_rows機能を確認したいです。 最後の結果にしかアクセスしない場合は、SQLクエリを確認してこのクエリのみを取得するようにしてください(ORDER BYとLIMITを使用してください)。

あなたはすべての行をフェッチしたいのですが、最後の結果のための特別な治療を持っている場合、あなたは次のようにDUTことができます。

$nextRow = mysql_fetch_array($lvarresult); 
while ($nextRow) 
{ 
    $currentRow = $nextRow; 
    if($nextRow = mysql_fetch_array($lvarresult)) { 
     //Not the last row, data in $currentRow 
    } 
    else { 
     //Last row, data in $currentRow 
    } 
}