Foros del Web » Programando para Internet » PHP »

Mostrar registros de una consulta salteados.

Estas en el tema de Mostrar registros de una consulta salteados. en el foro de PHP en Foros del Web. Hola que tal. estoy haciendo una consulta sencilla a la base de datos asi: Código PHP: $sql  =  mysql_query ( "SELECT * FROM tabla WHERE id = '$id' GROUP BY karma" ) or die ( mysql_error ());  while ( ...
  #1 (permalink)  
Antiguo 07/06/2008, 18:47
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Mostrar registros de una consulta salteados.

Hola que tal.

estoy haciendo una consulta sencilla a la base de datos asi:

Código PHP:
$sql mysql_query("SELECT * FROM tabla WHERE id = '$id' GROUP BY karma") or die (mysql_error()); 
while (
$row mysql_fetch_array($sql)) {

echo 
"$row[fecha]<br>";


hasta aqui todo bien, pero resulta que quiero que me muestre los registros salteados, es decir que le indique que me muestre los registros cada 2, o cada 5 etc etc.

por ejemplo si la consulta genera 20 resultados y le digo que me muestre de 5 en 5 me mostrara el registro 1,5,10,20

Alguna idea?

un saludo
  #2 (permalink)  
Antiguo 07/06/2008, 19:27
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Mostrar registros de una consulta salteados.

postea en el foro de mysql seguro alli te ayudan mejor
  #3 (permalink)  
Antiguo 07/06/2008, 20:12
 
Fecha de Ingreso: enero-2008
Ubicación: La Plata
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 3
Respuesta: Mostrar registros de una consulta salteados.

Se de una forma para seleccionar aleatoriamente , pero no se si te serviria... De todos modos , seria asi:
Código PHP:

mysql_query
('SELECT * FROM tabla WHERE id='.$id.' ORDER BY rand() LIMIT 20'); 
Espero que te sirva.Suerte!
  #4 (permalink)  
Antiguo 07/06/2008, 20:13
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: Mostrar registros de una consulta salteados.

Que tal jaronu, el problema es que no estoy seguro si esto lo puede hacer directamente mysql con la llamada, o toca aplicarle php, yo creo que mas bien es la segunda opción ;)

saludos
  #5 (permalink)  
Antiguo 07/06/2008, 20:15
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: Mostrar registros de una consulta salteados.

hola manchilp gracias por la respuesta.

lamentablemente no me sirve ya que en el query aunque no lo coloqué utilizo un ORDER BY fecha.

saludos
  #6 (permalink)  
Antiguo 07/06/2008, 20:50
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: Mostrar registros de una consulta salteados.

Bueno, eso no tiene dificultad si aplicas un poco de ingenio. Para hacerlo solo tienes que saber lo siguiente:

Digamos que tenemos una variable, digamos $i, la cual aumenta en un bluque, bien si hacemos esto: $ % 5 nos va a resultar el residuo de la división. Como? que? Simple: si $i = 7, entonces 7 % 5 no devuelve el residuo de la división de 7 entre 5, o sea 2. De este modo podremos hacer lo que pides. El codigo sería como sigue:

$sql = mysql_query("SELECT * FROM tabla WHERE id = '$id' GROUP BY karma") or die (mysql_error());

$i = 0;
while ($row = mysql_fetch_array($sql)) {
if ($i % 5 == 0) {
echo "$row[fecha]<br>";

}
$i++;

}

Este codigo no está probado, asi que probablemente no te funcionará perfectamente, pero verás que imprime pediódicamente, yo estoy seguro que podrás ajustarlo a tu conveniencia.
  #7 (permalink)  
Antiguo 08/06/2008, 04:21
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: Mostrar registros de una consulta salteados.

Funciono perfecto Eljavista, Gracias ;)
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 14:05.