Jorge Vallejo Blog

Blog del creativo, ilustrador y profesor de videojuegos Jorge Vallejo

problemas

Problema redimensionar imagenes con php


Voy a hablaros de un problema que a la hora de redimensionar imagenes en php, hay unas funciones muy bonitas que rulan por internet sobre el tema, pero pocos te comentan un pequeño detalle sin el cual puedes pasarte varias horas revisando codigo, y diciendote ¿Pero que demonios esta mal? .Y es que lo primero que deberias hacer es una pagina php con el codigo php.info(); para ver las librerias que tienes instaladas y comprobar que php_gd.dll esta metida , que como lo sabes, por q al ver el php.info() tiene queaparecerte algo como esto:
GD

GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.10
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XPM Support enabled
XBM Support enabled

Php problemas acentos y eñes


Algunas veces puede pasarte que al extraer el texto de una base de datos y escribirla en php , de repente los acentos y eñes, no te salgan bien en la pagina, a mi me paso utilizando la tecnologia AJAX al volcar con javascript, pos bien la solucion es simplemnte usar la funcion php <?php utf8_encode($row['titulo'])?> que codifica la cadena, y hace que salga con acentos y ñs.
Tambien me gustaría hacer una defensa de la ñ , que me parece no solo una letra q deberiamos de defender ya que es genuinamente española, sino que me es una letra que queda muy bien en diseño, y sino mirar la cantidad de carteles que al anunciar eventos españoles la han utilizado.

Problemas con Order By Rand() mysql


El otro día vi con horror como en una pagina web que llevo, se mostraba un error mysql en una de las paginas php ademas de que tardaba mucho en cargar.
Despuedes de darle algunas vueltas al codigo , llegue a la conclusion de lo que estaba ocurriendo era que la consulta duraba demasiado y por eso devolvia el error, ¿pero donde estaba el fallo? pues en SELCT * FROM imagenes ORDER BY Rand() LIMIT 1 , esta consulta que yo usaba para generar una imagen aleatoria cada vez que se recarga la pagina tarda demasiado y casca, parece ser al hacer esa consulta obligamos a php a generar un numero aleatorio distinto para cada fila de la tabla, y aun que en mi caso tampoco eran tantos (150 registros), supongo q son suficientes si coincide que entran varias personas a la vez y petan el servidor.
Sin embargo la solucion es bien sencilla, simplemente hay que generar un unico numero aleatorio, como ya se que mi tabla tiene 150 registros , genero un numero entre 1 y 150 simplemente con rand(1,150), esto lo almaceno en $aleat y se lo paso a la query.
SELECT * FROM imagenes WHERE id=$aleat, y pista. Va bien rapido.