JSON codifica resultados de MySQL
¿ Cómo uso la json_encode()
función con los resultados de la consulta MySQL? ¿Necesito recorrer las filas o puedo simplemente aplicarlo a todo el objeto de resultados?
Aceptado
$sth = mysqli_query($conn, "SELECT ...");
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
$rows[] = $r;
}
print json_encode($rows);
La función json_encode
necesita PHP >= 5.2 y el paquete php-json , como se menciona aquí
Las versiones modernas de PHP admiten la función mysqli_fetch_all() que obtendrá su matriz de una sola vez
$result = mysqli_query($conn, "SELECT ...");
$rows = mysqli_fetch_all($result); // list arrays with values only in rows
// or
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC); // assoc arrays in rows
print json_encode($rows);
Si necesita colocar filas seleccionadas en un elemento distinto del json devuelto, puede hacerlo así: primero, obtenga la $rows
matriz como en la respuesta aceptada y luego colóquela en otra matriz como esta
print json_encode(['object_name' => $rows]);