jueves, 6 de febrero de 2014

Solución acentos o tildes o ñ eñes en mysql en PHP

Este es un apunte personal la cuál es la solución más viable y necesaria para solucionar el problema de ver caracteres como ñ o tildes de una consultar realizada en mysql y procesados con php 
Luego de establecer la conexión a una base de datos en necesario escribir la siguiente sentencia en el archivo php en cual estemos trabajando:

Si trabajas con el gestor mysql sería:
mysql_set_charset("utf8", $conexion);

En el caso de mysqli:
mysqli_set_charset($conexion, "utf8" );
En donde $conexión es la cadena de la conexión a la base de datos.
En el caso de mysqli la variable conexión tendría un cuarto parámetro que es especificar el nombre de la base de datos:
Quedando de la sigiuente manera:
$conexion = mysqli_connect("localhost", "root", "micontrasena", "mibasededatos");

Con tan sólo esa línea se soluciona la visualización de tildes y eñes de los datos de una tabla de mysql.
Read more ...


martes, 4 de febrero de 2014

Cambiar tablas a cotejamiento UTF-8 en MySQL

Este es un apunte personal acerca de cómo cambiar el formato de codificación , también llamado cotejamiento de una tabla en mysql a UTF-8, que por defecto al crearla en phpmyadmin por ejemplo, se crea con el siguiente formato: latin1_swedish_ci.

Para cambiar el formato de la tabla es necesario escribir la siguiente sentencia sql y ejecutarla.

ALTER TABLE cliente DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci


Lo que hace este comando es modificar el formato a utf-8, cosa que las columnas que, léase bien, "crearemos en adelante" tendrán el cotejamiento utf-8,  sin embargo, en el caso de las columnas ya creadas, éstas no sufrirán ninguna modificación.

Para alterar el formato de la o las columnas en particular, es necesario escribir el siguiente código sql. 
En el cual se incluye el nombre de la tabla, luego el nombre de columna a modificar luego el nombre nuevo de la columna, en este caso se mantiene igual y luego el tipo: varchar para este ejemplo. Finalmente se establece el tipo utf8 en "utf8_general_ci" o el formato que desees como utf8_spanish_ci, etc.

ALTER TABLE `cliente` CHANGE `nombre` `nombre` VARCHAR(30 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;

NOTA: Los caracteres que encierran los nombres de tabla y columna, no son comillas dobles ni simples.
Read more ...


martes, 21 de enero de 2014

Codeigniter usar htaccess eliminar index.php con htaccess


Urls Amigables con Codeigniter - Uso de htaccess


Solución para eliminar el url index.php con htaccess


Este no es un tutorial más que hay por internet , no es una novedad el utilizar un archivo .htaccess para eliminar index.php de las urls en un proyecto con codeigniter.
El objetivo es claro , es tener una url del siguiente tipo, llamada también url amigable para los buscadores y para los usuarios:


Como lo queremos:
http://localhost/proyecto/welcome
En lugar de :
http://localhost/proyecto/index.php/welcome
La solución en principio consiste en crear un archivo sin nombre en la carpeta que estemos trabajando y guardarlo con la extensión .httaccess, dentro de éste, colocar las siguientes tres líneas.
RewriteEngine on
RewriteCond $1 !^(index.php|public|robots.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Hasta aquí todo bien, cuando vamos al navegador eliminamos del url: el index.php, recargamos la página con la esperanza que funcione, como me pasó a mí, y nos llevamos la sorpresa de 500 Internal Server Error.

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at admin@example.com to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log.

El primer factor a considerar es el entorno donde estamos trabajando, si lo hacemos dentro de una carpeta llamada "miproyecto" ubicado en la raíz (localhost): Entonces debemos modificar la tercera línea del archivo .htaccess, la cual quedaría de la siguiente manera:

RewriteRule ^(.*)$ /miproyecto/index.php/$1 [L]
Con esto, incluso puede que siga mostrando el error Internal Server, a continuación la solución para trabajar sin /index.php en la url para codeigniter luego de haber editado el .htaccess .

Lo que tienes que hacer es editar el archivo httpd.conf del servidor , en este caso de apache. En WampServer lo encuentras en la carpeta C:\wamp\bin\apache\Apache2.4.4\conf o también clicando sobre el icono del wampserver en la barra de tareas, ir a apache y luego a httpd.conf.

Con nuestro editor de texto Buscamos la siguiente linea #LoadModule rewrite_module modules/mod_rewrite.so
. Quitamos el comentario "#". Guardamos los cambios. Así es como debería quedar:

LoadModule rewrite_module modules/mod_rewrite.so

Finalmente Reiniciamos el servidor apache , comprueben su url sin el index.php y verán que ya les funciona. Así que ya saben no basta con crear solamente el archivo .htaccess.
A mí me funcionó, luego de buscar muchos tutoriales por allí .Espero les sea de ayuda y si les funcionó compartirlo. Les cito la fuente: http://phpcollection.com/mod-rewrite-windows-wamp-xampp/
Read more ...