Es una base de datos MySQL que contiene banderas de países actuales y del pasado, de organizaciones internacionales, etc.
Las banderas se almacenan en formato SVG. Este formato es una descripción en XML de una imagen vectorial
Para consultar las banderas se utiliza una aplicación AJAX que utiliza prototype, mysql y php
Banderas a pantalla completa con más información y más filtros
Los datos transmitidos del servidor al cliente por cada petición AJAX.
Se produce al cargar la página o al buscar sin indicar ningún valor. El listado está ordenado por país.
<banderas aleatorio="true">
<bandera id="6" inicio="1975" fin="">Angola</bandera>
<bandera id="158" inicio="1918" fin="">Estonia</bandera>
<bandera id="209" inicio="1991" fin="">Tayikistán</bandera>
...
</banderas>
El filtro busca en varios campos simultáneamente. Del resultado encontrado retorna un máximo de 20 banderas. Se toma una muestra aleatoria del resultado si es que hay más de 20 banderas.
<banderas filtro="ab">
<bandera id="300" inicio="1992" fin="">Abjasia</bandera>
<bandera id="48" inicio="-1" fin="">Adís Abeba —Etiopía—</bandera>
<bandera id="302" inicio="1992" fin="">Alto Karabaj</bandera>
...
</banderas>
<ficha id="150">
<pais>Zimbabue</pais>
<inicio>1965</inicio>
<fin/>
<oficial>República de Zimbaue</oficial>
<country>Zimbabwe</country>
<continente>África</continente>
<gobierno>Democracia Parlamentaria</gobierno>
<idiomas>Inglés,Shona,Ndebele</idiomas>
<capital>Harare</capital>
<moneda>Dólar zimbabuense</moneda>
<poblacion>11271314</poblacion>
<extension>390580</extension>
</ficha>
La bandera es un archivo XML en formato SVG que está almacenada en la BD. Se trata de una imagen vectorial. Este fichero no se transmite en las peticiones AJAX.
Para visualizar la bandera hay el siguiente código en el documento HTML:
<object id="bandera" data="server/bandera.php?id=" type="image/svg+xml" >
La bandera se toma del archivo bandera.php que la busca en la BD. Cuando llega los datos XML de una ficha se toma el valor del atributo id para modificar el parámetro data del código anterior.
Por ejemplo, para mostrar la bandera de Zimbaue, el código quedaría así:
<object id="bandera" data="server/bandera.php?id=150" type="image/svg+xml" >
El archivo SVG tiene problemas de visualización en algunos navegadores web.
SELECT bandera FROM banderas WHERE id={id}
SELECT * FROM ( SELECT pais AS bandera, id, inicio, fin FROM banderas ORDER BY rand() LIMIT 20 ) a ORDER BY bandera
SELECT * FROM (
SELECT
CASE
WHEN pais LIKE {filter} THEN pais
WHEN oficial LIKE {filter} THEN oficial
WHEN country LIKE {filter} THEN country
WHEN capital LIKE {filter} THEN concat(capital,' —',pais,'—')
ELSE pais
END AS bandera,
id,
inicio,
fin
FROM
banderas
WHERE
pais LIKE {filter} OR
oficial LIKE {filter} OR
country LIKE {filter} OR
capital LIKE {filter} OR
{year} BETWEEN inicio AND coalesce(fin,9999)
ORDER BY
rand()
LIMIT 20
) a ORDER BY bandera
SELECT
pais, inicio, fin, oficial, country, continente, gobierno,
idiomas, capital, moneda, poblacion, round(extension) as extension
FROM banderas
WHERE id={id}
La base de datos mundo en MySQL. Dentro está la tabla banderas. El campo bandera es de tipo texto y almacena la bandera en formato SVG.
En el archivo banderas.sql.7z hay 399 fichas en MySQL.