RSS
Recortes: 3
Registrado: 18/6/2007
Web
PHP (3)
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)
tabla (1)
formatear (1)
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; }
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
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!