Estimados, ayuda tengo la siguiente estructura.
global.php
<?php define("DB_HOST","localhost"); define("DB_NAME", "prueba"); define("DB_USERNAME", "root"); define("DB_PASSWORD", ""); define("DB_ENCODE","utf8"); ?>
conexion.php
<?php require_once "global.php"; $ conexion = new mysqli(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME); mysqli_query( $ conexion, 'SET NAMES "'.DB_ENCODE.'"'); if (mysqli_connect_errno()) { printf("Falló conexión a la base de datos: %s\n",mysqli_connect_error()); exit(); } if (!function_exists('ejecutarConsulta')) { function ejecutarConsulta($ sql) { global $ conexion; $ query = $ conexion->query($ sql); return $ query; } } ?>
subcategoria.php
<?php require "Conexion.php"; Class Subcategoria { public function __construct() { } public function seleccionar($ idcategoria) { $ sql = "select s.nombre FROM subcategoria s INNER JOIN categoria c on s.idcategoria=c.id WHERE s.idcategoria='$ idcategoria'"; return ejecutarConsulta($ sql);
} } ?>
prueba.php
<?php header("Content-Type: application/json"); require_once "Subcategoria.php"; $ subcategoria = new Subcategoria(); $ rspta = $ subcategoria->seleccionar($ _GET["id"]); while($ reg = $ rspta->fetch_object()){ $ datos = array( 'Detalles' => array( array( 'nombre'=>$ reg->nombre, ), ), ); } echo json_encode($ datos); ?>
el problema que me surge es que el array solo me imprime el ultimo registro de la consulta:
{"Detalles":[{"nombre":"aceite"}]} // este el resultado
//lo he hecho con foreach, for y es el mismo resultado.
el resultado deberia ser
{"Detalles":[{"nombre":"aceite"}],[{"nombre":"filtros"}],[{"nombre":"bujias"}]}