Dividir resultado de query MySQL por bloques con PHP

Qué pasa si tienes un query que te arrojara cierta cantidad de filas, y necesitas dividirlas en bloques de “X” cantidad. Esto, en mi caso lo utilice para hacer un slider con JQuery, para se precisos con el plugin de Cycle.

Se asume que ya tienen establecida una conexión con la base de datos, así que solo pondré el código desde el query. Una vez que lean lo siguiente, será muy fácil entenderlo, si tienen dudas por favor comenten.

$query = "SELECT * FROM tabla";
$result = mysql_query($query, $con) or die(mysql_error());
// aqui decidimos el tamaño de los bloques
$divider = 4;

if($result){
	$i=0;
	while ($row = mysql_fetch_assoc($result)) {
		if($i%$divider==0){
//aquí escribimos el principio de el bloque
			echo('<div>'."\n");
			echo('<ul>'."\n");
		}
		$i++;
//aquí escribimos el codigo que queremos repetir por la cantidad de elementos dentro del bloque, en este caso 4
		echo("<li>".strtoupper($row['name'])."</li>\n");

		if($i%$divider==0){
//aquí escribimos el cierre de el bloque
			echo('</ul>'."\n");
			echo('</div>'."\n");
		}
	}
}

Como se puede leer, el ejemplo es muy sencillo, pero nos puede servir para infinidad de cosas.

  • Pingback: payday loan()

  • Pingback: direct cash advance loans how do they work lender()

  • Pingback: drugrehabcentershotline.com drug rehab centers()

  • Keyner Mora Espinoza

    Gracias por el ejemplo. Me funcionó de maravilla.

  • juanGatito

    y si quiero dividir mi query con base a letras??

    tengo una lista de ciudades en cada determinados estados de la republica, quisiera listarlos encabezados por una letra. Hay que tomar en cuenta que no todas las letras figuran y en cada letra hay uno o mas ciudades que mostrar

    Pienso en dividir los resultados de la query y no hacer bucle que ejecute un select por cada letra distinta que haya encontrado un select previo

    Quiero mostrar algo asi, que se te ocurre??

    A
    Aguascalientes

    B
    Baja California
    Benito Juarez

    C
    Cardenas
    Ciudad Victoria

    Cosamaloapan

    L
    Linares

    P
    Puebla
    Patzcuaro

  • Zilus

    Hola Juan!

    Yo lo haría con diferentes querys… no esta tan sencillo.
    Por ejemplo:
    select * from tabla,
    De ahi en el arreglo con php agarras la primera letra y con eso un query nuevo:
    select * from tabla where campo like ‘A%’, en donde A es la primera letra

  • juanGatito

    si, pero como lo comente justamente lo que no quiero es hacer tantos querys. Quisiera hacer solo uno y de ahi poder separar los registros para no estresar tanto al servidor

Suscribete ahora

Suscríbete y recibe información valiosa sobre UI, UX, CX y otras soluciones informáticas