Resultado de una consulta a un array

joak Seguir

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Feb 2014
Mensajes
3
Hola Foro !

Soy nuevo en PHP, por la necesidad de crear algunos WEB SERVICE, he ingresado a este lenguaje y llevo apenas dos semanas, una de ellas perdido en este tema .... Cómo almacenar el resultado de un SELECT a un array?, el objetivo es el resultado de un Query guardarlo en un array y luego en formato JSON regresar el resultado, ahorita por finalidades de hacer pruebas en mi código, estoy utilizando "ECHO" para hacer la impresión de mis variables, también lo que no encuentro es la solución de como saber el número de renglones afectadas en el Query, en lugar de ello utilizo en contador, les agradezco de antemano su atención.


class RedeemAPI {

private $db;

function __construct() {
$this->db = new mysqli('localhost', 'futchoco_admin', 'Futcho190867', 'futchoco_futsoft');
$this->db->autocommit(FALSE);
if (mysqli_connect_errno()) {
printf("Fallo conexion: %s\n", mysqli_connect_error());
exit();
}
}

function __destruct() {
$this->db->close();
}

function redeem() {
// Check for required parameters
if (isset($_POST["id_cliente"]) && isset($_POST["id_sucursal"])) {
// Put parameters into local variables
$cliente = $_POST["id_cliente"];
$sucursal = $_POST["id_sucursal"];
$stmt = $this->db->prepare('SELECT id_arbitro FROM arbitro WHERE id_cliente =? AND id_sucursal =? AND id_arbitro <> 0') or die(mysqli_error($this->db));
$stmt->bind_param("ii", $cliente, $sucursal);
$stmt->execute();
$stmt->bind_result($id_arbitro);
$rowsreturn = $stmt->num_rows;
echo $rowsreturn;
$registros = 0;
while ($row = $stmt->fetch_object()) {
$arreglo[] = $row;

$registros++;
}
$stmt->close();
if ($registros <= 0) {
sendResponse(400,"No existen arbitros con los parámetros recibidos");
return false;
}
echo json_encode($arreglo);

sendResponse(200, "FIN");
//printf("ERROR %s",$registros);
*/
return true;
}
sendResponse(400, 'Invalid request');
return false;
}
}
 

xSkArx

Dseda
Programador
Desde
25 Dic 2013
Mensajes
1.067
No entiendo porque usas mysqli orientado a objetos y procedural, es uno u otro, no los dos, para tener un arreglo cambia fetch_object por fetch_assoc, fetch_row o fetch_array

Enviado desde mi HUAWEI Y511-U251 mediante Tapatalk
 

joak

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Feb 2014
Mensajes
3
Hola xSkArx, antes que nada, gracias por contestar a mi pregunta.

Como lo comenté .... soy nuevo en PHP, no sabía que estaba utilizando dos "formas" de código.

Realizo los cambios e informo de lo sucedido, nuevamente gracias.
 

supercordobes

Zeta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
2 Sep 2011
Mensajes
1.506
No soy experto en PHP, pero al ser tan conocido el lenguaje seguramente hay alguna librería que haga lo que necesitas (transformar una consulta de la base de datos en JSON). Yo te diría que busques opciones antes que ponerte a programar, al menos que lo hagas para aprender.

Saludos
 

joak

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Feb 2014
Mensajes
3
Ya hice los cambios xSkArx y sigo con problemas ....

Hice el cambio por fetch_row , ya que dice la documentación que fetch_array ya es obsoleta.

Observando que fetch_row lo puedes implementar en objeto y procedimientos(sigo sin entender cual estoy usando y por que lo uso , todo lo que he echo fue en base a investigaciones en los foros), implementé ambas y nada,

WHILE ($row = mysqli_fetch_row($stmt)) .. . obtengo el error "PHP Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result"
WHILE ($row = $stmt->fetch_row()).......... obtengo el error "PHP Fatal error: Call to undefined method mysqli_stmt::fetch_row() "

Espero me puedas seguir ayudando, por tú atención gracias.
 

Roodaka

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Feb 2013
Mensajes
121
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
No soy experto en PHP, pero al ser tan conocido el lenguaje seguramente hay alguna librería que haga lo que necesitas (transformar una consulta de la base de datos en JSON). Yo te diría que busques opciones antes que ponerte a programar, al menos que lo hagas para aprender.

Saludos
¿JSON? ¿Cuándo se programa sin aprender?

Ya hice los cambios xSkArx y sigo con problemas ....

Hice el cambio por fetch_row , ya que dice la documentación que fetch_array ya es obsoleta.

Observando que fetch_row lo puedes implementar en objeto y procedimientos(sigo sin entender cual estoy usando y por que lo uso , todo lo que he echo fue en base a investigaciones en los foros), implementé ambas y nada,

WHILE ($row = mysqli_fetch_row($stmt)) .. . obtengo el error "PHP Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result"
WHILE ($row = $stmt->fetch_row()).......... obtengo el error "PHP Fatal error: Call to undefined method mysqli_stmt::fetch_row() "

Espero me puedas seguir ayudando, por tú atención gracias.
En el primer error, al parecer tienes un problema sintáctico con la consulta MySQL.
En el segundo, no existe el método (undefined method = Método indefinido, o sea que aún no existe)

Respecto a lo del paradigma implementado (Orientado a Objetos o ESTRUCTURADA) te comento que eso es relativamente sencillo de saber, obviamente en los foros no se resalta el tema muy seguido, ya sea por falta de conocimiento o ganas de aportar algo de calidad.

La extensión MySQLi (MySQL Improved) de PHP trae consigo una clase (un objeto, o sea) bastante completa llena de métodos útiles, los cuales llamamos mediante
PHP:
mysqli::_construct('localhost', 'my_user', 'my_password', 'my_db');

Pero también, mediante un alias se puede hacer exactamente la misma llamada usándola dentro de un contexto de Paradigma de Programación Estructurada
PHP:
mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

Nadie en ningún lado prohíbe el uso de múltiples paradigmas, pero sí es aconsejada la implementación de sólo una para mantener ordenado el código.

Dejo el link a Wikipedia con los Distintos Paradigmas

Respecto al primer comentario, un poco de educación nunca sobra.
 

supercordobes

Zeta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
2 Sep 2011
Mensajes
1.506
¿JSON? ¿Cuándo se programa sin aprender?

El usuario comenta que tiene que devolver el resultado en ese formato (JSON), ¿porque tu duda? Es algo muy común que tenga que devolver JSON cuando se hace un servicio (lo que le solicitaron según escribe en su post). Acá podes ver que es JSON: JSON - Wikipedia, la enciclopedia libre

Lo que él quiere hacer ahora es lo siguiente: MySql => Parsear en PHP (programando) => Json

Lo que yo sugiero que verifique si no puede hacer lo siguiente: MySql =>Parser Librería (automático) => Json

Mi idea es que se ahorrara un paso, en la tecnología que programo (.net) muchas veces hay librerías para ese tipo de cosas.

Sobre programar sin aprender o no: me refería a que si lo tiene que hacer rápido que explorara la solución que le sugerí. En otras ocasiones hacemos las cosas por el gusto de aprender y no tenemos presiones de tiempo que si se pueden dar en el ámbito del desarrollo profesional, el clásico "tiene que estar para ayer".
 

Roodaka

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Feb 2013
Mensajes
121
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
El usuario comenta que tiene que devolver el resultado en ese formato (JSON), ¿porque tu duda? Es algo muy común que tenga que devolver JSON cuando se hace un servicio (lo que le solicitaron según escribe en su post). Acá podes ver que es JSON: JSON - Wikipedia, la enciclopedia libre

Lo que él quiere hacer ahora es lo siguiente: MySql => Parsear en PHP (programando) => Json

Lo que yo sugiero que verifique si no puede hacer lo siguiente: MySql =>Parser Librería (automático) => Json

Mi idea es que se ahorrara un paso, en la tecnología que programo (.net) muchas veces hay librerías para ese tipo de cosas.

Sobre programar sin aprender o no: me refería a que si lo tiene que hacer rápido que explorara la solución que le sugerí. En otras ocasiones hacemos las cosas por el gusto de aprender y no tenemos presiones de tiempo que si se pueden dar en el ámbito del desarrollo profesional, el clásico "tiene que estar para ayer".

Sí, entiendo el por qué y sé bien qué es JSON (programo desde hace unos 6 años en PHP y otros lenguajes).

Pido disculpas, malinterpreté las intenciones de tu respuesta.
 
Arriba