Weblogs Código

RecorteX

» xoneca
73 usuarios y 244 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes del usuario xoneca

RSS
Recortes: 3
Registrado: 18/6/2007
Web

Etiquetas:
PHP (3)
tabla (1)
formatear (1)
cristiano (1)
letras (1)
entidades (1)
acentos (1)
tildes (1)
formato (1)
database (1)
libre (1)
español (1)
base (1)
hora (1)
date (1)
fecha (1)
castellano (1)
HTML (1)
datos (1)
SQL (1)
fechas (1)
convertir (1)
ID (1)
dieresis (1)

Encontrar un ID libre en una tabla de una base de datos

Pues es sencillo: se sacan todos los IDs de la tabla y se inicializa una variable a 0 (el ID mínimo) y se va mirando si está en la matriz de los IDs de la tabla. Si está en la matriz, probar con el siguiente ($i++), pero si no está, hemos encontrado un ID reutilizable (o nuevo, si se ha llegado al límite de la matriz).

Principalmente sirve para no tener que meter un ID nuevo en una tabla, si ya se han liberado IDs (borrado registros) anteriormente. Así además el tamaño del campo ID no hace falta que sea muy grande si se eliminan y se añaden muchos registros.

 
  // Doy por supuesto que ya se ha conectado a una base de datos
  // $tabla es el nombre de la tabla en donde hay que buscar un ID libre
  
  function buscar_id_libre($tabla){
      global $db;
      // Sacar todos los IDs de la tabla
      $res = mysql_query("SELECT id FROM $tabla");
      if($res){
          while(false !== ($reg = mysql_fetch_assoc($res)))
                  $ids[] = intval($reg['id']);
      }else{
          $ids = array(0);
      }
 
      // Buscar un ID que no este en la matriz (o en la tabla)
      $i = 0;
      while(in_array($i, $ids)){
          $i++;
      }
      return $i;
  }
 

Formatear una fecha/hora en castellano

Con estas dos líneas se puede formatear una fecha en castellano (y en otro idioma instalado):
Se puede conseguir ayuda en la web de PHP (http://es.php.net/strftime)

 
  // Establecer la constante global LC_TIME a español
  // NOTA: Esto se establece globalmente para PHP, si éste está
  // cargado como Módulo en vez de CGI. Esto es, desde que se establece
  // hasta que se cierra PHP, no hasta que termina el script.
  setlocale(LC_TIME, 'sp');
 
  // Es un poco diferente a la función Date() pero los argumentos son los mismos
  echo strftime('%A, %d de %B de %Y');
 
  // Escribe: martes, 19 de junio de 2007
 

Convertir letras con acentos, tildes, ... a entidades HTML

Si se quiere convertir, por ejemplo á por á y todas las demás, con esta simple función ya vale. Su funcionamiento:

1. Convierte TODOS los caracteres especiales a entidades.

2. Como los caracteres <, & y > no nos interesa que queden codificados, se vuelven a descodificar (sólo estos).

 
  function caracteres_html($texto){
      $texto = htmlentities($texto, ENT_NOQUOTES, 'UTF-8'); // Convertir caracteres especiales a entidades
      $texto = htmlspecialchars_decode($texto, ENT_NOQUOTES); // Dejar <, & y > como estaban
      return $texto;
  }
 

Si no se dispone de PHP 5 o posterior, se necesita también agregar el siguente código:

 
  if ( !function_exists('htmlspecialchars_decode') )
  {
      function htmlspecialchars_decode($text)
      {
          return strtr($text, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
      }
  }
 

A disfrutarlo!

Proyecto: Juanjo Navarro, 2006 - Diseño: Albin