2010-08-06 22 views
1

我得到了我的PHP腳本如下代碼:fetchArray()省略第一個結果

$result = $conect->query("SELECT nome, classificacao 
     FROM ".$conecta->prefix('inscritos_resultados')." 
     WHERE classificacao >=1 AND classificacao <=50 
     ORDER BY classificacao"); 

$o_grupo = 0; 
while ($usuarios = $conecta->fetchArray($result)) { 
    if ($o_grupo == 0){ 
     echo "<tr class=\"even\"><th colspan=\"1\"> Classificação </th> 
      <th colspan=\"2\"> Nome </th>"; 
     $o_grupo = 1; 
    } else{ 
     echo "<tr class=\"odd\" onmouseout=\"this.className='odd';\" 
      onmouseover=\"this.className='even';\"><th colspan='1'> 
      <strong>".$usuarios["classificacao"]." </strong></th> 
       <th colspan='2'> ".$usuarios["nome"]." </th>"; 
    } 
} 

爲什麼它省略了第一個結果?

回答

2

因爲您在else語句中回顯數據。即使$ o_grup == 0你仍然想顯示第一條記錄,所以你不想要別的。只是一個如果:

while ($usuarios = $conecta->fetchArray($result)) { 
    if ($o_grupo == 0){ 
     echo "<tr class=\"even\"><th colspan=\"1\"> Classificação </th><th colspan=\"2\"> Nome </th>"; 
     $o_grupo = 1; 
    } 
    echo "<tr class=\"odd\" onmouseout=\"this.className='odd';\" onmouseover=\"this.className='even';\"><th colspan='1'><strong> ".$usuarios["classificacao"]." </strong></th><th colspan='2'> ".$usuarios["nome"]." </th>"; 
} 

應該解決這個問題。

編輯

可是爲什麼連在環反正?

echo "<tr class=\"even\"><th colspan=\"1\"> Classificação </th><th colspan=\"2\"> Nome </th>"; 
while ($usuarios = $conecta->fetchArray($result)) { 
    echo "<tr class=\"odd\" onmouseout=\"this.className='odd';\" onmouseover=\"this.className='even';\"><th colspan='1'><strong> ".$usuarios["classificacao"]." </strong></th><th colspan='2'> ".$usuarios["nome"]." </th>"; 
} 

應該工作得很好,而不需要循環中的if。

+0

我的不好,現在它的工作完美!非常感謝您的幫助! =) – 2010-08-06 19:23:51