Hola a todos, es tema recurrente el pasar el resultado de una consulta mysql a json usando php, he leido que es mejor procesar las consultas lo más posible en el servidor de BD que con php, ya me dicen ustedes si es así...
por eso he pensado que la forma más optima de obtener json seria que la misma bd te devolviera los resultados en dicho formato.
Usando las funciones CONCAT() y GROUP_CONCAT() lograriamos construir el JSON directamente desde la consulta SQL.
Código:
CREATE TABLE `user`(
`id` int not null auto_increment,
`name` varchar(100),
`email` varchar(50),
PRIMARY KEY(id)
) ENGINE = InnoDB;
Luego insertaremos unos cuantos registros.
Finalmente realizaremos la consulta que nos traera el JSON.
Código:
SELECT
CONCAT( "[",
GROUP_CONCAT(
CONCAT("{name:'",`name`,"'"),
CONCAT(",email:'",`email`,"'}")
)
,"]")
AS json FROM users;
resultado: