Todas las entradas por Rubén Lacasa Mas

10 Mysql query optimization good practices

Avatar de Ananda Raj PandeyHow To Tutorials

Writing a good optimized sql queries will help to reduce server load on MySQL and also improves the load time and server response time for the web page.
Few tips to optimize MySQL queries are below:

1. Select only required colums:

Selecting every thing from the table will cause more memory uses and thus utilize more server resources.
BAD:
SELECT * FROM <TABLE>;

GOOD:

SELECT name, age FROM <TABLE>;

Only select required fields to have better performance.

2. Indexing correctly:

Index is not only for primary key, we should index  field that is search contineously, and also the joined column.

Example:

Select name, age from table where age=32 and name =’alex’ ;

Select name, age,group from table1 left join table2 on table1.groupid=table.group where age=32 and name=’alex’;

In first case, name and age should be indexed. ( Way of indexing will be covered in next blog).
In second case, along…

Ver la entrada original 462 palabras más

How to create pagination in PHP and MySQL with AJAX

Avatar de ikhlaqueikhlaque

I have wrote an article on pagination with a simple class and many users like it and download it so now i have decided to write its and updated version with AJAX.

In this article i am going to explain you how to create pagination in PHP & MySQL with AJAX for your websites.

Pagination is a very important part in your websites reporting and this article will help you to create it very very simple.

For More Information

PHPGANG

Ver la entrada original

MySQL Connection in Java

Add your thoughts here… (optional)

Avatar de Devesh SharmaDevesh Sharma

Here is an example to show how to connect to MySQL database in Java.

First things first. If you are using Maven, please add the MySQL dependency in your pom.xml file. The dependency looks like this:

If you are NOT using Maven, you need to download the MySQL JDBC driver. The driver can be found here. The download contains a JAR file which you need to add to your classpath.

That is it! Here is the code to connect to MySQL database in Java:

Ver la entrada original

Zend Server con soporte Xdebug en Linux – PHP Tips

Cuando se trata de depurar nuestras aplicaciones con PHP, están como dos opciones principales ZendDebugger y XDebug. Dependiendo del IDE que utilicemos, y del servidor que tengamos utilizaremos una u otra. Por ejemplo si usamos Zend Studio y Zend Server, la opción clara es Zend Debugger, pero si usamos como IDE Netbeans, este no tiene soporte para Zend Debugger, solo para XDebug.

De primeras casi recomendaría olvidarnos de instalar los dos depuradores a la vez, ya que lo normal es que den problemas, así que hay que decidirse por uno u otro.

Si tenemos Zend Server y queremos habilitar Xdebug, hay que deshabilitar Zend Debugger. Para instalarlo y ponerlo en marcha hay que hacer lo siguiente:

En el servidor

Otra de las ‘particularidades’ de Zend Server es que los binarios PHP los ubica en su propio directorio de trabajo y otro problema suele ser tener varios binarios PHP en nuestros servidor,  para comprobar que binarios estamos usando utilizaremos la herramienta which


which php

/usr/local/zend/bin/php

Si nos sale el resultado de antes quiere decir que estamos usando el PHP que viene con Zend Server, si sale /usr/bin/php, igual estamos probando otro.

Otra cosa que podemos comprobar en caso que nos devuelva la ruta /usr/bin/php es ir a ese directorio y hacer un ls -lh ph* para ver si el binario php es un enlace a /usr/local/zend/bin/php y  si phpize apunta al directorio de zend.

Otra opción, mas sencilla es ir al directorio /usr/local/zend/bin y ejecutar el comando con ./ asi se ejecutara ese comando y no el del path.

Asi instalariamos el xdebug:


sudo pecl install xdebug

Una vez instalado necesitamos comentar una linea en el archivo de configuracion debugger.ini que esta en /usr/local/zend/etc/conf.d/debugger.ini y agregar otra

;zend_extension_manager.dir.debugger=/usr/local/zend/lib/debugger

zend_extension=/usr/local/zend/lib/php_extensions/xdebug.so

Esta linea esta situada la ultima, para comentarla simplemente agregamos un ; delante
Una vez hecho esto reiniciamos el servidor y comprobamos en el phpinfo o ejecutando php -i | grep xdebug si el xdebug esta cargado.

Esta entrada esta basada en la entrada Zend Server with Xdebug support on Linux | My Science Is Better.

Enhanced by Zemanta

Editor de RegExp, expresiones regulares Online – Utilidades Web

He encontrado este editor online de expresiones regulares que es muy completo y muy útil. Tiene ejemplos de funciones y va analizando lo que vas poniendo poco a poco, de tal manera que se puede ir interpretando que va ha hacer el patrón.

RegExr.

Enhanced by Zemanta

Cargando clases PHP automaticamente – PHP Tips

Una de las cosas que pueden resultar mas tediosas, por lo menos para mi, a la hora de programar es ir cargando las dependencias necesarias del fichero para que todo funcione. Con PHP podemos usar las funciones de auto carga para que cada vez que se llame a una clase esta se cargue.

Supongamos el siguiente escenario, tenemos todas las clases en el directorio clases y el fichero donde se define cada una de estas tiene el mismo nombre que la clase. Podríamos crear la siguiente función y con esta cuando creemos un nuevo objeto de la clase se cargara automáticamente.


function __autoload($clase) {
    include 'clases/' . $clase . '.php';
}

A partir de  PHP 5 >= 5.1.2 podemos usar la función spl_autoload_register para la carga automática de clases.


function miAutocargador($clase) {
    include 'clases/' . $clase . '.php';
}

spl_autoload_register('miAutocargador');

Y para simplificarlo un poco mas, a partir de la versión PHP 5.3 podemos lanzar una función anónima para realizar lo mismo de antes


spl_autoload_register(function ($clase) {
    include 'clases/' . $clase . '.php';
});

Para que esto funcione, tiene que cargarse esta función en el fichero en el que queramos que se ejecute la carga, lo ideal en estos casos es si se tiene un fichero de constantes o funciones auxiliares, que se utilicen en todo el proyecto incluir esta función en este.

Mas información:

http://www.php.net/manual/es/function.spl-autoload-register.php

Enhanced by Zemanta

Input autocompletable sin Javascript – HTML Tips

El elemento datalist

Otro de los nuevos elementos que trae el HTML5 es el elemento datalist.  La documentación acerca de este elemento nos dice lo siguiente:

The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden.
 

Es decir, el elemento datalist representa un conjunto de opciones que nos muestran opciones predefinidas para otros controles. En la visualización el elemento y sus hijos están ocultos.

¿Como podemos utilizarlo?

A la hora de incluirlo dentro de nuestro código definimos el elemento y su conjunto de opciones, este elemento lo vincularemos por ejemplo con un campo input


<label>Airport: <input type="text" list="airports" name="to" />
<datalist id="<span class=&quot;hiddenSpellError&quot; pre=&quot;&quot;>airports</span>"></datalist>
value='ATL' label="Atlanta">
value='MEM' label="Memphis">
value='LHR' label="London Heathrow">
value='LAX' label="Los Angeles">
value='FRA' label="Frankfurt">
 </datalist>

Al pulsar la tecla L se muestra los aeropuertos que empiezan con L
Al pulsar la tecla L se muestra los aeropuertos que empiezan con L

Como se ve en la imagen, nos aparece el value en negrita y  el valor de label un poco mas claro, y una vez seleccionado el valor, en el campo de texto se queda el valor del value.

Estos elementos pueden ser reutilizados dentro de una pagina web, por ejemplo si quisiéramos poner una lista de aeropuertos de origen y destino, nos podría valer con el mismo datalist.

Este elemento esta soportado por todos los navegadores a excepción de Safari.

Mas información:

http://www.w3.org/TR/html5/forms.html#the-datalist-element

http://www.w3schools.com/tags/tag_datalist.asp

Enhanced by Zemanta

Integrar Google Translator en nuestra web – Google Tips

Hoy he vuelto a revisitar el complemento de Google para traducir una pagina web a cualquier idioma. En lineas generales lo ha hecho bastante bien, aunque, hay me he encontrado unos cuantos inconvenientes.

No voy a explicar aquí como integrarlo ya la web que genera el código a integrar esta muy clara y nos lo explica muy bien http://translate.google.com/translate_tools.

El primero es muy visual, ya que en la web que he traducido, estoy usando bootstrap y la barra de traducción de Google me tapa todo el menú.

El segundo ha sido, vamos a calificarlo como gracioso, ya que en la web que he traducido, hay palabras sueltas en inglés y cuando traduces la pagina al inglés, te traduce los términos ingleses al castellano.

Este segundo problema, mirando la documentación para webmasters he encontrado la manera de solucionarlo, y es establecer la clase «notranslate» a las palabras o frases que no quieres que traduzca. Por ejemplo


<p>La etiqueta <span class='notranslate'>form</span> se utiliza para crear formularios web</p>

Otra de las cosas a tener en cuenta a la hora de realizar traducciones de paginas web, sobre todo a la hora de posicionamiento es que, la web traducida no sera indexada en el directorio de Google. Lo dice clarito en la documentación

Search engine indexing
The automatically translated version of your web page will not be indexed by search engines.

Mas información: https://support.google.com/translate/#2641276

Enhanced by Zemanta

Instalar Adobe Air en Ubuntu 13.04 – Ubuntu Tips

El otro día me vi en la necesidad de instalar Adobe Air en mi Ubuntu 13.04, recordaba que en una actualización de sistema me quería sonar que lo tenia instalado, pero se ve que en alguna actualización de versión se borro, o algo así.

Googleando encontre esta pagina How To Install Adobe Air in Ubuntu 13.04 en la cual se explica paso a paso como instalar Adobe Air en nuestro Ubuntu. Espero que os sirva.

Uso de Foreach y For (Parte III Diferencias) – PHP Tips

Esta es la ultima entrada de la trilogía del uso de Foreach y For, en ella vamos a ver las principales diferencias y ventajas de uno sobre otro.

El foreach no es un bucle

De primeras la principal diferencia la tenemos en la propia definición, ya que el foreach no es un bucle sino un constructor, el cual solo puede iterar en arrays y objetos, en cambio el for es un bucle, es decir, se repite tantas veces como nosotros queramos.

El foreach no puede recorrer cadenas de texto.

En uno de los ejemplos de uso de for, veíamos como podíamos recorrer carácter a carácter una cadena de texto, en cambio con el foreach no podemos hacerlo

En el foreach no es necesario poner el tamaño del array.

En el uso del for, a la hora de recorrer un array, tenemos que especificar hasta que posición tenemos que recorrerla, en cambio en foreach nos lo recorre del principio a fin. Esto supone una ventaja sobre el for, ya que en este si no especificamos bien el tamaño podemos obtener un error.

Cosas que apriori no se pueden hacer con el foreach

Modificar los valores de un array/objeto

Como vimos en la entrada del foreach, apriori no se pueden modificar los elementos de un array usando el foreach, y en realidad si que se puede hacer pasando el valor por referencia.

Recorrer un array al revés

Si vemos el funcionamiento del foreach, este realiza una copia del array, sitúa el puntero en el primer elemento y lo recorre hasta el final, según esto no seria posible recorrer un array de forma inversa, algo que con el bucle for, podríamos hacerlo de una manera sencilla, pero podemos hacerlo también con el foreach usando la función array_reverse dentro de la definición del foreach


$array = array(1, 2, 3, 4);
foreach (array_reverse($cadena) as $var) {
echo $var.PHP_EOL;
}

En este ejemplo se nos mostraría los valores de la $array empezando desde el final, y si mostramos $array una vez finalizado, podremos ver que los valores no han modificado su orden, ya que el array_reverse se aplica solo a la copia de $array.

 

Conclusiones

Tengo que decir que en mi día a día uso mas veces el foreach que el for, el for solo lo utilizo cuando tengo que mostrar un numero determinado de mensajes, y en el caso de recorrer arrays suelo usar siempre el foreach, lo veo mas seguro, y me permite recorrer de una manera sencilla arrays con clave de texto.

Con estas entradas he intentado cubrir las características tanto del bucle for como del constructor foreach, seguramente me habré dejado algún ejemplo o alguna característica. Agradeceré vuestros comentarios, sugerencias y preguntas.

 

 

 

Enhanced by Zemanta