Hola.
Con el siguiente código intento mostrar (en una tabla de dos columnas) sólo los diez primeros registros de la base de datos. Para ello utilizo una variable $contador. Pero no funciona, ya que muestra todos los registros de la base de datos.
Echadle un vistazo a ver por que puede ser.
Código PHP:
<?
$cons_top = "SELECT id_pelicula,total FROM top ORDER BY total DESC";
$res_top = mysql_query($cons_top) or die(mysql_error());
$contador = 0;
//MOSTRAMOS LOS DATOS EN DOS COLUMNAS
$j=0;
$k=0;
echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" style=\"padding-top:0px;\"><tr>";
$columnes = 2;
//while(($row_top = mysql_fetch_row($res_top))&&($contador<10)){
while($contador<10){
for ($i=1; $row_top = mysql_fetch_row ($res_top); $i++) {
$id_pelicula = $row_top[0];
$total = $row_top[1];
$cons_top_pelicula = "SELECT titulo FROM movies WHERE id = $id_pelicula";
$res_top_pelicula = mysql_query($cons_top_pelicula) or die(mysql_error());
$row_top_pelicula = mysql_fetch_row($res_top_pelicula);
$top_titulo = $row_top_pelicula[0];
$contador++;
$resto = ($i % $columnes); # Número de celda del <tr> en que nos encontramos
if ($resto == 1) {
echo "<tr>";
} # Si es la primera celda, abrimos <tr>
echo "<td width=\"82\" class=\"top\" valign=\"top\" style=\"padding-top:1px;\">
<img src=\"#\" width=\"80\">
$top_titulo
<br>($total ptos.)
</td>";
if ($resto == 0) {
echo "</tr>";
} # Si es la última celda, cerramos </tr>
}
if ($resto <> 0) { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos
$ajust = $columnes - $resto; # Número de huecos necesarios
for ($j = 0; $j < $ajust; $j++) {echo "<td> </td>";}
echo "</tr>"; # Cerramos la última línea </tr>
}
echo "</table>";
}
?>