2013-10-31 57 views
-1

這裏是我的了:PHP循環不工作

$pagecount=0; 
while($row = $result->fetch_assoc()){ 
echo '<div style="background-image:url(images/paper.jpg);">'; 
    while ($pagecount < 3) { 
    while($row = $result->fetch_assoc()){ 
     echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>'; 
     $pagecount++; 
     } 
    } 
$pagecount=0; 
echo '</div>'; 
} 

的問題是,這是在運行時,它會打印出$受害者,$鱈魚,然後$ PAGECOUNT。我從來不希望pagecount高於3,所以我放入while語句,所以當它碰到3時,它應該退出循環,然後pagecount應該回到0,然後再次開始增加。然而,當這個運行,pagecount只是繼續上升,並沒有達到3,然後回到0.任何人都可以幫忙?我的狀況或環路有什麼問題嗎?

也只是在一邊,任何人都可以告訴我,而不是使用第一個$row = $result->fetch_assoc()有什麼我可以用來檢查,如果結果不會是空的,因爲此刻,它會跳過mysql數據庫中的第一項。

乾杯傢伙!

編輯:到目前爲止測試過的每個解決方案,他們都爲我工作。 這只是表明你有多種不同的方式可以做一件事!

謝謝大家,你們都非常非常樂於助人。非常感激。 :) 我最終去完成從內部循環刪除整個while聲明。

但是由於第一個$row = $result->fetch_assoc()第一個數據庫條目仍然被跳過。 任何方法?

回答

1

嘗試這種情況:

$pagecount=0; 
while($row = $result->fetch_assoc()){ 
    echo '<div style="background-image:url(images/paper.jpg);">'; 
    while($pagecount < 3 && $row = $result->fetch_assoc()){ 
     echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>'; 
     $pagecount++; 
    } 
    $pagecount=0; 
    echo '</div>'; 
} 
0

在使用$row = $result->fetch_assoc()的循環內使用$row = $result->fetch_assoc()會使結果的指針過於靠前。 我建議您在執行循環之前將所有對象存儲在數組中。

0
while ($pagecount < 3) { 
    while($row = $result->fetch_assoc()){ 
     echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>'; 
     $pagecount++; 
     } 
    } 

只要它可以fetch_assoc,你的內在循環將繼續循環,因爲你不檢查pagecount。

移動狀態到內而:

while($pagecount < 3 && $row = $result->fetch_assoc()){ 
     echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . $pagecount . '</div></div>'; 
     $pagecount++; 
     } 
0
$pagecount++; 

應該被移出內部循環,即

while($row = $result->fetch_assoc()){ 
    echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div  class="cod">' . $row['cod'] . $pagecount . '</div></div>'; 
    //moved 1 level: $pagecount++; 
    } 
$pagecount++; 
} 

縮進你的代碼可能有幫助:)

+0

ahh其他人格式化了代碼,原來有兩個while循環處於同一級別的縮進 – FelixHJ