Insertar NULL en CSV para importarlo desde PHPMyadmin hacia MySQL

28 de Diciembre de 2009

Siguiendo con la importación de un Excel hacia Mysql, tenemos el problema de que los campos que no se han rellenado se insertan como “” (cadena vacía) o como 0 (cero) según sean texto o números lo que estamos insertando.

Bien, si queremos que se guarde un NULL debemos insertar el siguiente carácter: \N

Como en la anterior entrada, simple pero efectivo.

Quitar espacios entre números o palabras en excel (o calc)

28 de Diciembre de 2009

En una migración desde Excel a Mysql tenemos el problema de que en un campo numérico obtenemos espacios, y el entero se nos trunca. Lo que debería ser: 93 222 2222 se guarda como: 93 es decir, se trunca por el primer espacio que encuentra.

La manera más cómoda de solucionar este problema que he encontrado ha sido seleccionar la columna en cuestión y hacer un buscar/reemplazar de un espacio por nada.

Una vez hecho podemos guardar como CSV e importar desde phpmyadmin a nuetra base de datos mysql. Simple pero efectivo.

Problema strtoupper con acentos

4 de Diciembre de 2009

Si en PHP queremos pasar un String con acentos, diéresi o diferentes letras de codificación UTF-8 a mayúsculas, directamente no podemos utilizar

PHP:
  1. $var = strtoupper($valor);

ya que transformará a mayúsculas únicamente las letras del abecedario simple (sin contar ñ ni ç).

La forma correcta de cubrir todos los casos es:

PHP:
  1. $var =   mb_strtoupper($valor,'utf-8');

Aprender hacer expresiones regulares para quitar los tags de un texto en php

19 de Noviembre de 2009

Para eliminar los tags de un texto, ya sea en php o javascript o cualquier otro lenguaje, vamos a utiizar expresiones regulares.

la ideal para tags es:  .<[^>]+>.

Para aprender a como funcionan las expresiones regulares, podemos utilizar un simuladro muy bueno, que nos permite probar "in the fly", en tiempo real. Si la expressión regular es válida o hace lo que queremos.

Para ello te deja poner un texto donde reconocer y la expressión.

El sitio es:  regexpal.com

dedicado a luis.

Quitar Ask.com de Firefox

31 de Octubre de 2009

Hay programas que al instalarlos en tu máquina dan la opción de instalar la barra de ask.com y si no te interesa pero no te das cuenta se instala una barra en tus navegadores.

El problema es que incluso desinstalando la aplicación de tu sistema, la barra deja valores predefinidos en los navegadores, y se cuela como buscador de cuando introduces una palabra o una dirección errónea en la caja de direcciones.

La solución a este problema en firefox es bastante simple:

1. Escribir en la barra de direcciones 'about:config'
2. Filtrar por la palabra 'ask' en la caja de introducción que aparece en la parte superior.
3. Salen una serie de valores, y unos estan resaltados en negrita, estos son los valores que ask ha modificado.
4. Botón derecho sobre cada una de las filas en negrita y Restablecer.

¡Con estos cuatro pasos ya volvemos a tener el control sobre nuestro navegador!

OKI _wifi digital Consumibles para esta impresora multifunción de OKI

30 de Octubre de 2009

Bueno, el que adquiere está maquina  muy muy limitada, pero muy barata. Se encuentra que en internet no se puede saber que consumible usa. Es muy dificil Y nisiquiera la página oficial la mantiene.

Así que voy a poner los números de serie, o referencias de los cartuchos para que los podais comprar:

Existen 3 cartuchos:

Código de producto 09218988: Cartucho Negro  de Tinta OKI capacidad estándar negro, 11ml. :
Código de producto: 09218989 : Cartucho Color de Tinta OKI, capacidad estándar color, 7ml.
Código de producto: 09218990 : Cartucho de alta capacidad para impresión de fotografías, 18ml.

En la página de Oki, han sustituido el modelo por este nuevo, muy similar:

OKI PHOTO IMAGE

Que usa cartuchos distintos:

  • Cartucho Color OKI Photo Image 09219167
    • Cartucho Foto OKI Photo Image
    09219172
    • Cartucho toner negro OKI Photo Image
    09219168

allow memory en phpmyadmin al importar una BD

27 de Octubre de 2009

Cuando importamos una base de datos grande y lo queremos hacer desde el PHPMYADMIN, puede ser que nos de un error de que no tiene memoria suficiente.

Para solucionarlo, si tenemos acceso al servidor. Podemos incrementar la memoria máxima de ejecución y el tiempo de ejecucución de los escripts php en generar desde el php.ini (el fichero de configuración de php)

Si el servidor está montado sobre un S.O. Linux, el ejemplo en concreto es sobre ubuntu

la ruta del fichero será /etc/php5/apache2/php.ini

Dentro del fichero buscar "Resource Limits":

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 60 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
;memory_limit = 16M      ; Maximum amount of memory a script may consume (16MB) ; Por defecto
memory_limit = 128M ; Maximum amount of memory a script may consume (16MB)

Ahí dentro, modificar las lineas en negrita (memory_limit y max_execution_time ) por los valores acordes a la importación que vaya hacer y la memoria disponible en el servidor.

despues reiniciar el apache para que surja efecto:

sudo /etc/init.d/apache2 restart

Una vez importada la bd es recomendabe volver a dejar el fichero como estaba.

Un enlace sin href que no mueva ni actualice la pagina

24 de Septiembre de 2009

Nos interesa un enlace, que al hacerle click, ejecute una funcion javascript, pero que no mueva la pagina, ni la refresque, ni se vaya a otra.

La gracia es colocar # en el href del enlace, pero al hacerlo la pagina escrolla hasta la cabecera de la misma.

Como arreglarlo? Muy fácil, con un return false en javascript.

<a href="#" onclick="return false;">
<a href="#" onclick="funcionJavascript();return false;">

Imprimir directo desde ms-dos. Tickets desde php bajo Windows

10 de Septiembre de 2009

Hace tiempo solventamos la impresión desde php a impresora de tickets bajo Linux mediante este método

Ahora tenemos la problemática de hacer lo mismo desde Windows. Existe la extensión printer pero nos interesa reutilizar la mayor parte del código, en este caso el cuerpo del ticket, para que las versiones bajo Windows y Linux difieran el mínimo posible.

Bien, siguiendo el mismo método necesitamos imprimir un fichero previamente generado desde php directamente desde consola (en este caso mediante comandos ms-dos). Ms-dos y las impresoras usb no se llevan bien, así que toca hacer un pequeño "apaño". Mapear el puerto LPT1 a un puerto de impresión de red con nuestra impresora previamente compartida en red. Estos son los pasos:

1) Nos asegurarnos de tener, al menos, una interfaz de red. En caso de no tener ninguna podemos añadir un adaptador ficticio, como "Adaptador de bucle invertido de Microsoft" y asignarle una IP.

2) Compartimos la impresora (que por cierto, debe ser sólo texto) en red. Recordamos el nombre que le asignamos como recurso compartido.

3) Mapeamos el puerto desde ms-dos con el siguiente comando: NET USE LPT1: \\[nombre_en_red_de_la_maquina]\[nombre_impresora] /PERSISTENT:YES

4) Ahora desde php ya podemos imprimir el fichero que queramos con: shell_exec('type nombre_fichero>lpt1');

Con un pequeño if que detecte el sistema operativo en que está instalado php podemos tener un sistema de impresión de tickets multiplataforma. Eso si, con nuestra intervención para mapear el puerto.

Conectar Database Explorer de eclipse-aptana con SQL Server

9 de Septiembre de 2009

Pasos para conectar correctamente:

  • Bajar el driver JDBC de MSSQL.
  • Abrir la perspectiva de Database Explorer(Window > Open Perspective > Other ... > Database Explorer).
  • Para agregar una nueva cionexión: click derecho sobre databases, en la ventana de database explorer, y presionar add...
  • Escribir el nombre de la conexión.
  • En los detalles de conexión click sobre Add.
    1. Escribir un nombre para el driver.
    2. Click sobre Add File y examina el driver descargado en el paso 1.
    3. En la información de conexión selecciona el driver encontrado.
  • La cadena de conexión a establecer es la siguiente:
    jdbc:sqlserver://NOMBRE_HOST:PUERTO;DatabaseName=NOMBRE_DB
  • Establecer el nombre de usuario y contraseña para conectar a la base de datos.

Con estos pasos debería conectar a MSSQL y mostrarte todo su contenido desde la prespectiva de aptana database explorer.

Fuente:blog.jorgeivanmeza.com

NOTA

A partir de la versión 1.5 de aptana parece que deja de funcionar lo de subir un driver personalizado en el database explorer.

En el caso de tener la 1.5 os podeis bajar el programa 'MyEclipse' que parece ser que lleva un buen database explorer de serie.