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.
Tutorial sobre dhtmlScheduler, un calendario en Ajax
Por alguna razón necesitaba encontrar un calendario que me permitiera agregar eventos al vuelo y que algunas personas pudieran tener acceso a el. Quería encontrar algo dinámico (Ajax) y que tuviera el potencial para funcionar dentro de una intranet que estoy armando en PHP y MySQL. Esto, es para que no me complicara insertando las tablas, sesiones etc en mi proyecto actual.
El resultado de la búsqueda fue dhtmlxScheduler, una app en dhtml que tiene la posibilidad de almacenar los datos de nuestras citas en una base de datos MySQL, PostgreSQL y algunas más.
Lo primero, como siempre, es descargar la aplicación que necesitamos de aquí.
**Este tutorial asume algunas cosas:
- Tenemos un servidor Web previamente configurado (LAMP) o hosteamos en algún lugar.
- El servidor ejemplo se llamara como siempre “Localhost”.
- Las contraseñas e información de base de datos MySQL son muestra, tendremos que ajustar a nuestras necesidades.
- Tenemos conocimientos de PHP, MySQL, Javascript y HTML y CSS.
Una ves descargada y descomprimida en algún directorio de nuestro disco duro (en el tutorial será nuestro home), copiaremos solamente los siguientes ficheros y directorios al directorio destino, es decir, donde vivirá nuestro calendario en el servidor Web.
- $HOME/dhtmlxScheduler/codebase > todo el directorio
- $HOME/dhtmlxScheduler/samples/common/config.php
- $HOME/dhtmlxScheduler/samples/initialization_loading/php/events.php
Ahora, ya en el directorio que hemos creado para la aplicación, vamos a dar vida a un index.php en el que agregaremos el código contenido en el siguiente archivo:
Con lo que en el explorador, debemos ver algo así:

Ahora, echemos un vistazo a como debería de estar organizado nuestro directorio de calendario en el servidor:

Si hasta ahora va todo correcto (si vieron el calendario en el explorador, no se preocupen por el mensaje de error sobre el XML, ya que aun no llegamos a esa parte), Ahora editaremos lo mas fácil, que es el config.php y pondremos los valores que se adapten a nuestras configuraciones.
<?php $server = "localhost"; $user = "miusuario"; $pass = "mipasswd"; $db_name= "miDB"; ?>
Ahora crearemos un fichero llamado vaciado.sql en donde agregaremos lo siguiente:
DROP TABLE IF EXISTS `events`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `events` (
`event_id` int(11) NOT NULL AUTO_INCREMENT,
`event_name` varchar(127) NOT NULL,
`start_date` datetime NOT NULL,
`end_date` datetime NOT NULL,
`details` text NOT NULL,
PRIMARY KEY (`event_id`)
) ENGINE=MyISAM AUTO_INCREMENT=85 DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;
Inmediatamente después, importaremos ese archivo a MySQL, ya sea con PhpMyAdmin o mediante la linea de comandos.
Finalmente, editaremos el fichero events.php donde ajustaremos las rutas a los archivos que necesita el calendario para trabajar correctamente:
<?php
include ('codebase/connector/scheduler_connector.php');
include ('config.php');
$res=mysql_connect($server, $user, $pass);
mysql_select_db($db_name);
$scheduler = new schedulerConnector($res);
$scheduler->enable_log("log.txt",true);
$scheduler->render_table("events","event_id","start_date,end_date,event_name,details");
?>
Eso es todo, ahora visitamos el calendario con nuestro navegador y podremos agregar citas y eventos dando doble click sobre el día que deseamos, solo es necesario poner nombre y ajustar la hora de comienzo y termino.
Como remplazar texto en MySQL
Estaba instalando un plugin para resaltar código en mi Wordpress cuando me tope con la sorpresa de que el plugin en si usaba una clase CSS que yo estaba ocupando en mis posts, la clase se llama “code”.
La tarea era cambiar todos los posts de este blog que contenían la cadena “<p class=”code”>” a otra cosa para que no tuviera conflictos, por lo que tuve que ejecutar una consulta en MySQL para facilitarme el trabajo.
La estructura de la consulta seria así:
update tabla set `campo` = replace(`campo`,'cadena vieja','cadena nueva');
En mi caso particular quedo de la siguiente manera:
update blog_posts set `post_content` = replace(`post_content`,'<p class="code">','<p class="coded">');
Con esto, cambiamos la cadena de “<p class=”code”>” a “<p class=”coded”>” con lo que en menos de dos minutos edite mas de 100 temas en mi Wordpress.
Es un tip rápido que me gusto para compartir con ustedes y ahorrarles un poco de trabajo.
Hola mundo en 366 lenguajes de programación
Todo el mundo que comienza a programar, sobre cualquier lenguaje, se podría decir que escribe su primer script con la famosa frase “Hola Mundo”.
Navegando por The Inquirer, encontre esta información que puede ser bastante divertida, 366 lenguajes de programación concentrados en un sitio enseñándonos a hacer el famoso Hola Mundo, desde C hasta los lenguajes que muchos no han escuchado.
Aquí en enlace.