Foros del Web » Programando para Internet » PHP »

query en columnas solucionado. Para el que quiera verlo.

Estas en el tema de query en columnas solucionado. Para el que quiera verlo. en el foro de PHP en Foros del Web. ahora tengo un problema, empieza a mostrar los resultados por el segundo registro de la consulta. ¿Como soluciono esto?...
  #1 (permalink)  
Antiguo 19/11/2003, 10:55
 
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 20 años, 4 meses
Puntos: 0
Exclamación query en columnas solucionado. Para el que quiera verlo.

ahora tengo un problema, empieza a mostrar los resultados por el segundo registro de la consulta.
¿Como soluciono esto?

Última edición por buscounaidea; 20/11/2003 a las 03:16
  #2 (permalink)  
Antiguo 19/11/2003, 11:42
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona - España
Mensajes: 270
Antigüedad: 21 años, 4 meses
Puntos: 0
¿Podrías poner el código?
  #3 (permalink)  
Antiguo 19/11/2003, 13:03
 
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 20 años, 4 meses
Puntos: 0
Bien aquí esta el código, ( si alguien sabe una forma mejor de repetir tablas en columnas...)

Muestra los resultados en las columnas, pero se come el primer registro, y empieza por el segundo.

Gracias.

"<?php
echo "<table align=center>";
$columnes = 3; # Número de columnas (variable)
if (mysql_num_rows($videojuegos)==0){echo "<tr><td colspan=$columnes>No hay resultados en la BD.</td></tr> ";}

for ($i=1; $row = mysql_fetch_row ($videojuegos); $i++) {
$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>";?><table width="101" height="74" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="101"><img src="imagenes/espacio.gif" width="100" height="10"></td>
</tr>
<tr>
<td align="left" valign="top"> <div align="center" class="indalmanas02"><a href="videojuegos_detalle.php?id_videojuego=<?php echo $row_puesto['id_videojuego']; ?>"><?php echo '<img src="imagenes/caratulas/'; ?><?php echo $row['10']; ?><?php echo '_p.jpg" width="100" height="83" border="0">'; ?></a></div></td>
</tr>
<tr>
<td align="left" valign="top"><img src="imagenes/espacio.gif" width="100" height="10"></td>
</tr>
<tr>
<td height="18" align="left" valign="top">
<div align="center" class="indalmanas02"><?php echo $row['4']; ?><br>
</div></td>
</tr>
<tr>
<td height="18" align="left" valign="top"><div align="center"><span class="indalmanasCopia">pvp</span>
<span class="indalmanasCopia"><?php echo $row['9']; ?>
&euro;</span></div></td>
</tr>
</table>
<?php echo "</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>&nbsp;</td>";}
echo "</tr>"; # Cerramos la última línea </tr>
}
echo "</table>";
?>
<?php } while ($row_videojuegos = mysql_fetch_assoc($videojuegos)); ?>"
  #4 (permalink)  
Antiguo 19/11/2003, 15:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Me apostaria el cuello a que antes de ese codigo tienes un mysql_fetch_*(). Lo digo porque has metido todo eso en un do...while:
Código PHP:
  <?php } while ($row_videojuegos mysql_fetch_assoc($videojuegos)); ?>
Quita ese do...while. Ya recorres los resutados con el for. Lo que estas haciendo con ese mysql_fetch_*() que tienes delante de este codigo es leer el primer registro, pero no lo muestras. Y como has avanzado el puntero del resultado, el siguiente mysql_fetch_*() coge el segundo registro. Asi que tambien tienes que quitar el mysql_fetch_*() de delante de este codigo. Y el do...while tambien lo quitas, no se te olvide.

Posiblemente tengas ese mysql_fetch_*() de delante de este codigo en un if, que usabas para saber si habia devuelto registros la consulta. Ahora eso lo tienes que hacer con el mysql_num_rows().

Saludos.

PD: La bola de cristal se va oscureciendo, poco a poco .... ya no veo nada mas.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 20/11/2003, 03:10
 
Fecha de Ingreso: noviembre-2003
Mensajes: 7
Antigüedad: 20 años, 4 meses
Puntos: 0
Totalmente correcto
Ya está el problema solucionado.

Muchisimas gracias, y hasta pronto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:01.