2013-05-10 66 views
1

喜IM嘗試列出的第一個字母分隔類別,但即時通訊混淆如何通過UL和李有我的查詢樣式樣式組PHP導致上名字的第一個字母

$Sql = "SELECT *, COUNT(Cup_Id) AS num 
     FROM tabcup 
     INNER JOIN tabcats ON tabcupom.Cat_Id = tabcats.Cat_Id 
     WHERE tabcup.Cup_Status = 1 
     GROUP BY tabcup.Cat_Id 
     ORDER BY tabcat.Cat_Nome 
     ";   
$Query= mysql_query($Sql, $Conn) or die (mysql_error($Conn)); 

while($Rs = mysql_fetch_assoc($Query)){ 

if($initial !== strtoupper(substr($Rs['Cat_Nome'], 0, 1))) { 
    $initial = strtoupper(substr($Rs['Cat_Nome'], 0, 1)); 
    $Cats .= "<h2>$initial</h2>\n"; 
} 

$Cats .= "<li>".$Rs["Cat_Nome"]." (".$Rs["num"].")</li>\n"; 

} 

echo $Cats; 

這將返回

<h2> A </h2> 

<li> Aaaaaa</li> 
<li> Abbbb</li> 


<h2> B </h2> 
<li> Baaaaa</li> 
<li> Bbbbb</li> 

結果IM嘗試是

<h2> A </h2> 
<ul> 
<li> Aaaaaa</li> 
<li> Abbbb</li> 
</ul> 

<h2> B </h2> 
<ul> 
<li> Baaaaa</li> 
<li> Bbbbb</li> 
</ul> 

感謝您的幫助

回答

1

計數器($i在我的例子)添加到您的循環,讓你知道什麼時候添加的開始和結束標記,

$i = 0; 
while($Rs = mysql_fetch_assoc($Query)){ 

    if($initial !== strtoupper(substr($Rs['Cat_Nome'], 0, 1))) { 
     $initial = strtoupper(substr($Rs['Cat_Nome'], 0, 1)); 
     if ($i != 0) { 
      $Cats .= "</ul>"; 
     } 
     $Cats .= "<h2>$initial</h2>\n"; 
     $Cats .= "<ul>"; 
    } 

    $Cats .= "<li>".$Rs["Cat_Nome"]." (".$Rs["num"].")</li>\n"; 
    $i++; 
} 

if ($i > 0) { 
    $Cats .= "</ul>"; 
} 
+0

作品像魅力@bazmegakapa感謝.. – 2013-05-10 22:31:36

1
$initial = null; 

while($Rs = mysql_fetch_assoc($Query)){ 

    if($initial !== strtoupper(substr($Rs['Cat_Nome'], 0, 1))) { 
     if ($initial) { 
      $Cats .= "</ul>\n"; 
     } 
     $initial = strtoupper(substr($Rs['Cat_Nome'], 0, 1)); 
     $Cats .= "<h2>$initial</h2>\n<ul>\n"; 
    } 

    $Cats .= "<li>".$Rs["Cat_Nome"]." (".$Rs["num"].")</li>\n";  
} 
if ($Cats) { 
    $Cats .= "</ul>\n"; 
} 
0

試試這個代碼:

$ind=0; 
$Sql = "SELECT *, COUNT(Cup_Id) AS num 
    FROM tabcup 
    INNER JOIN tabcats ON tabcupom.Cat_Id = tabcats.Cat_Id 
    WHERE tabcup.Cup_Status = 1 
    GROUP BY tabcup.Cat_Id 
    ORDER BY tabcat.Cat_Nome 
    ";   
$Query= mysql_query($Sql, $Conn) or die (mysql_error($Conn)); 

while($Rs = mysql_fetch_assoc($Query)){ 

if($initial !== strtoupper(substr($Rs['Cat_Nome'], 0, 1))) { 
$initial = strtoupper(substr($Rs['Cat_Nome'], 0, 1)); 
if ($ind>0) $Cats.="</ul>\n"; 
$ind++; 
$Cats .= "<h2>$initial</h2>\n"; 
$Cats.="<ul>"; 
} 

$Cats .= "<li>".$Rs["Cat_Nome"]." (".$Rs["num"].")</li>\n"; 

} 

echo $Cats; 
if ($ind>0) echo "</ul>"; 
相關問題