Accediendo a Arrays con SQL
Gracias a estas dos clases, podemos utilizar la sintaxis de SQL para acceder a datos incluidos en Arrays tanto para JavaScript como para PHP.
JavaScript
En JavaScript tenemos TrimQuery, que es el componente que -desarrollado en JavaScript- nos permite acceder a los datos de un namespace.
Por ejemplo, si tuviéramos esta estructura de array:
//Esquema
Invoice : { id : { type : "String" },
total : { type : "Number" },
custId : { type : "String" } },
Customer : { id : { type : "String" },
acctBalance : { type : "Number" } }
//Fuente de datos
Invoice : [ { id: 1, total: 100, custId: 10 },
{ id: 2, total: 200, custId: 10 },
{ id: 3, total: 300, custId: 10 },
{ id: 4, total: 400, custId: 20 } ],
Customer : [ { id: 10, acctBalance: 1000 },
{ id: 20, acctBalance: 2000 },
{ id: 30, acctBalance: 3000 } ]
podríamos usar SQL para acceder a los datos:
var statement = queryLang.parseSQL( "SELECT Customer.id, Customer.acctBalance, Invoice.total " + "FROM Customer, Invoice " + "WHERE Customer.id = Invoice.custId " + "ORDER BY Customer.id ASC");
PHP
En PHP la clase que podemos utilizar es sql4array, que aunque es para PHP5, existe una modificación para PHP4 realizada por Víctor de Mis Algoritmos
El funcionamiento de esta clase también es muy sencillo. Basándonos en esta estructura de arrays:
/* Array de datos -------------------------------------------- */ $array[0][column_1] = 1; $array[0][column_2] = "foo"; $array[1][column_1] = 2; $array[1][column_2] = "oof";
…y aplicando la clase…
/* Creación del objeto
-------------------------------------------- */
$sql = new sql4array();
/* Consulta
-------------------------------------------- */
$result = $sql->query("SELECT * FROM array ORDER BY column_2 DESC");
…obtenemos los datos del array.
Aparte de la facilidad que supone la consulta de los datos, el tiempo de respuesta es más rápido con respecto a las funciones nativas de PHP.
En la página oficial podemos ver un gráfico comparativo de tiempos de respuesta en relación al número de registros entre la clase sql4array y la clase nativa de PHP.
Vía: Sentido Web
El funcionamiento de la clase en PHP me vino muy bien, Martín, gracias.
Aunque la clase parece interesante, he tenido muchos problemas con ella, especialmente utilizando “where” - he notado que la clase todavia esta en alpha. No se si esta lista para produccion.
Hola Israel,
Pues puede ser que todavía haya algunos fallos de implementación, yo no la he llegado a usar, pero teniendo en cuenta tu experiencia con ella puede que así sea.
Un saludo,
Santi M.
Hola, he estado programando sobre la API JavaScript y está muy bien. Lo he probado en varios navegadores y sólo falla en Opera donde no permite algunos usos del ‘eval’.
Saludos!
(Corrección del post anterior)
Ya funciona en Opera.
La modificación es muy simple. Al principio se crea esta variable:
var theEval = eval;
Pues bien, comentáis esta línea y sustituís todas las referencias a ‘theEval’ por ‘eval’. Y a funcionar.
Saludos!