我的php脚本上有以下代码:
$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>";
}
}
为什么省略第一个结果?
答案 0 :(得分:2)
因为您在else语句中回显数据。即使$ o_grup == 0你仍然想显示第一条记录,所以你不想要其他的。只需一个if:
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。