PHP - Recorrer Objetos dentro de Objeto PHP

 
Vista:

Recorrer Objetos dentro de Objeto PHP

Publicado por Andony Javier (2 intervenciones) el 04/02/2018 23:11:51
Resulta que estoy tratando de crear un objeto llamado $consultasArray de la clase Consulta, que contenga todas las consultas que están registradas en la tabla Consulta de base de datos, esto, para poder leerlas desde otro PHP, pero no se que estoy haciendo mal que no me permite poder hacer el ingreso de todas las consultas, el esquema que busco sería así:

1
2
3
4
5
6
7
8
(Class Consulta) $consultaArray {
	((Class Consulta) #1) = {numAtencion, locomoción, motivo, valorConsulta, estadoPago, observaciones}
	((Class Consulta) #2) = {numAtencion, locomoción, motivo, valorConsulta, estadoPago, observaciones}
	((Class Consulta) #3) = {numAtencion, locomoción, motivo, valorConsulta, estadoPago, observaciones}
	((Class Consulta) #4) = {numAtencion, locomoción, motivo, valorConsulta, estadoPago, observaciones}
	((Class Consulta) #5) = {numAtencion, locomoción, motivo, valorConsulta, estadoPago, observaciones}
etc.....
}

Obviamente cada atributo tiene valores diferentes, y no entiendo que es lo que hago mal dentro de mi código para no llegar a eso, dejo a continuación el código que estoy trabajando.


codigo

El foreach que tengo al final al momento de probarlo no me muestra nada incluso hice impresiones dentro del While con Echo y los datos se están rescatando de la base de datos pero no los guarda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Recorrer Objetos dentro de Objeto PHP

Publicado por Miguel (218 intervenciones) el 05/02/2018 04:37:34
1) Tu código permite inyecciones SQL.

2) Tu función solamente debería retornar un array de objetos.

3) No estás realizando correctamente la declaración de la variable 'consultasArray'. Debería ser solamente: $consultasArray = [];

4) Dentro del while, los valores del registro se los estás asignando a la variable 'this' (que es la instancia donde se encuentra la función) y no a la variable 'consulta' (que es una instancia de los objetos que quieres retornar). Debería ser algo así: $consulta->numAtencion = $resultado[0];

5) En PHP7 la extensión mysql es obsoleta.


PD: repasa los contenidos de POO en PHP.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Recorrer Objetos dentro de Objeto PHP

Publicado por Andony Javier (2 intervenciones) el 05/02/2018 11:13:50
Si!!, efectivamente los objetos estaban mal declarados, soy un poco (muy) novato en PHP, así me quedó y funcionó a la maravilla:

IMG-20180204-WA0003
Al final retorné el objeto y pude trabajarlo perfectamente, y si, estoy al tanto de que está obsoleto pero en dónde se aplica esto se trabaja con PHP 5.3.0, por eso el sublime aún me lo toma como válido.

Respecto a la inyección SQL, nose si llorar o reír con eso porque me dejaste un poco confundido , el programa está diseñado bajo el MVC, la imagen que envíe estaba dentro del Modelo, lo que significa que había pasado el Controlador, aún así está mal codificada el código SQL?? Cómo se "evitaría" la inyección? Si no es mucho pedir
]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Recorrer Objetos dentro de Objeto PHP

Publicado por Miguel (218 intervenciones) el 05/02/2018 20:06:51
Bien, si el parámetro 'rut' que se pasa en la función previamente se ha 'limpiado' (verificado que no sea algún código malicioso) no hay inconvenientes. En cambio, si el parámetro 'rut' es directamente tomado (sin revisar) de algún GET o POST podrían aplicarte una inyección SQL.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar