[英]How do I calculate the last iteration of a PHP while loop with jQuery/JavaScript?
[英]How do I detect the last iteration in while loop
我首先嘗試這樣做:
$e = 0;
$objectsid = mysql_query("SELECT * FROM xw_char_items WHERE CharId = '$charid' AND ItemCat = 'object' ORDER BY SortOrder ASC");
while($obj = mysql_fetch_array($objectsid)) {
$e++;
if($e==9) break;
$objectsinfo = mysql_query("SELECT * FROM xw_objects WHERE ItemId = '{$obj["ItemId"]}'");
$object = mysql_fetch_array($objectsinfo);
echo "&charid$e={$char["Id"]}";
if($objectsid == end($obj)) {
echo "&intActiveObject=1";
echo "&intObjectsNum=$e";
}
}
在這里它永遠不會檢測到最后一個。 我也試過這個:
$e = 0;
$len = count($objectsid));
while($obj = mysql_fetch_array($objectsid)) {
$e++;
if($e==9) break;
$objectsinfo = mysql_query("SELECT * FROM xw_objects WHERE ItemId = '{$obj["ItemId"]}'");
$object = mysql_fetch_array($objectsinfo);
mysql_free_result($objectsinfo);
echo "&charid$e={$char["Id"]}";
if ($e == $len - 1) {
echo "&intActiveObject=1";
echo "&intObjectsNum=$e";
}
}
在這里,它將每次迭代檢測為最后一次迭代。
有誰能使它檢測到最后一次迭代?
$objectsid
變量存儲的是mysql_result
對象,而不是所獲取的行的數組。 因此,即使您應用count($objectsid)
,也不會獲得所獲取數組的長度。
因此正確的方法是使用mysql_num_rows()
。
所以只需這樣做$len=mysql_num_rows($objectsid);
其余的將按照您的期望進行鍛煉。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.