2011-06-04 66 views
1

所有我想做的是結束當前,並開始新的UL每10個結果結束和開始新的UL每10 MySQL的結果

繼承人我的代碼是不工作100%:

$sql1 = mysql_query("select * from `provinces` order by `name` asc"); 

    while ($row1 = mysql_fetch_assoc($sql1)) 
    { 
     echo '<li id="popup_'.strtolower(str_replace(' ', '_', $row1['name'])).'">'; 
     echo '<ul>'; 

     $sql2 = mysql_query("select * from `cities` where `id_province`='".$row1['id']."' order by `name` asc"); 
     $count = 1; 

     while ($row2 = mysql_fetch_assoc($sql2)) 
     { 
      if ($count % 10 == 0) 
       echo '</ul>'; 

      echo '<li>'.$row2['name'].'</li>'; 

      if ($count % 10 == 0) 
       echo '<ul>'; 

      $count++; 
     } 

     echo '</ul>'; 
     echo '</li>'; 
    } 
+0

那麼什麼是不工作? – lonesomeday 2011-06-04 19:55:19

+0

(($ count%10)== 0) – Ibu 2011-06-04 19:56:36

+0

你需要重寫你的查詢,可以合併成一個 – Ibu 2011-06-04 19:58:07

回答

5

替換此

if ($count % 10 == 0) 
     echo '</ul>'; 

if ($count % 10 == 0) 
      echo '</ul><ul>'; 

而完全地消除了第二次檢查

 if ($count % 10 == 0) 
      echo '<ul>'; 

否則你的HTML砸了

//我花了一些時間來得到這個回答,因爲這個問題是不容易indentify :)

+0

你搖滾。我知道這很簡單。 – scarhand 2011-06-04 23:15:50

-1

所以應該使用新的ul AFTER 10結果...如果你想要在每隔10次結果之前你必須在li輸出之前設置if塊

$sql1 = mysql_query("select * from `provinces` order by `name` asc"); 

    while ($row1 = mysql_fetch_assoc($sql1)) 
    { 
     echo '<li id="popup_'.strtolower(str_replace(' ', '_', $row1['name'])).'">'; 
     echo '<ul>'; 

     $sql2 = mysql_query("select * from `cities` where `id_province`='".$row1['id']."' order by `name` asc"); 
     $count = 1; 

     while ($row2 = mysql_fetch_assoc($sql2)) 
     { 
      echo '<li>'.$row2['name'].'</li>'; 
      if ($count % 10 == 0) 
       echo '</ul><ul>'; 
      $count++; 
     } 

     echo '</ul>'; 
     echo '</li>'; 
    }