Función susceptible de mejora, pero extremadamente útil.
/**
* Sirve en UTF-8 sí o sí.
*/
function supericonv($txt) {
$txt1 = iconv('ISO-8859-15', 'UTF-8', $txt);
$retVal = strpos($txt1, 'Ã') === FALSE ? $txt1 : $txt;
$retVal = str_replace(array("¿", "»", "«"), array("¿", "»", "«"), $retVal);
return $retVal;
}
miércoles, 19 de junio de 2013
viernes, 13 de abril de 2012
(n+1)*n/2
La suma de los N primeros números naturales es
Utilidad aplicada:
Supongamos un modelo de datos (una tabla) en el que hay un atributo para ordenar, un entero correlativo que empieza en 0. Para garantizar la coherencia de los datos, tenemos que asegurarnos que cada operación de modificación deja la tabla bien:
Aquí tenemos un ejemplo de datos coherentes:
S = (N+1)*N/2
Utilidad aplicada:
Supongamos un modelo de datos (una tabla) en el que hay un atributo para ordenar, un entero correlativo que empieza en 0. Para garantizar la coherencia de los datos, tenemos que asegurarnos que cada operación de modificación deja la tabla bien:
Aquí tenemos un ejemplo de datos coherentes:
+--------+-------+
| _order | id |
+--------+-------+
| 0 | 18685 |
| 1 | 21971 |
| 2 | 21979 |
| 3 | 21977 |
| 4 | 21975 |
| 5 | 21973 |
| 6 | 22047 |
+--------+-------+
Y aquí uno de datos no coherentes: se ha borrado un dato pero no se ha actualizado bien el _order en la tabla:
+--------+-------+
| _order | id |
+--------+-------+
| 0 | 18685 |
| 1 | 21971 |
| 2 | 21979 |
| 3 | 21977 |
| 4 | 21975 |
| 6 | 21973 |
| 7 | 22047 |
+--------+-------+
¿Cómo comprobar en una tabla estas incoherencias? Aquí entra en juego nuestra fórmula.
Si todo está bien, la suma de los _order + 1 debe ser igual a la suma de los n enteros hasta los N registros que tengamos en la tabla.
SELECT COUNT(id),
cliente,
SUM(_order+1) AS suma_order,
ROUND((COUNT(id)+1)*COUNT(id)/2, 0) AS suma_buena
FROM tabla
GROUP BY cliente
HAVING ROUND((COUNT(id)+1)*COUNT(id)/2, 0) != SUM(_order+1)
ORDER BY COUNT(id);
jueves, 14 de julio de 2011
Tira nº 76: usuaria avanzada
miércoles, 6 de julio de 2011
Recuperemos el denostado tag "blink"
Con lo bonito que era el parpadeo de las webs que había en Geocities...
<html>
<head>
<title>¡¡¡Blink!!!</title>
http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js
function blinkear() {
var blink = $('blink');
if (blink) blink.toggle();
}
$(document).ready(function () {
setInterval(blinkear, 700);
});
<style>
blink {color: lime; font-size: 22px;
font-family: "Comic Sans MS";
font-weight: bold;}
</style>
</head>
<body>
<blink>El parpadeo es divertido...</blink>
</body>
</html>
Suscribirse a:
Entradas (Atom)

