Foros del Web » Programando para Internet » PHP »

xq el retur no me devuelve el valor??

Estas en el tema de xq el retur no me devuelve el valor?? en el foro de PHP en Foros del Web. tengo una clase que hice mediante ayuda de estos foros para conectar con la db y de sugerencia me digron que hiciera las consultas mediante ...
  #1 (permalink)  
Antiguo 19/07/2010, 14:59
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
xq el retur no me devuelve el valor??

tengo una clase que hice mediante ayuda de estos foros para conectar con la db y de sugerencia me digron que hiciera las consultas mediante la clase y bueno me decidi y hice algo mi problema es que no me retorna los datos que dan como resultado esta consulta y noc xq de echo le di un echo adentro de la funcion y me mostro resultado pero cuando le doy return en la variable donde lo llamo no me muestra nada fijense

[PHP]
public function consulta($query)
{
$this->query=mysql_query($query) or die ("error al realizar consulta ".mysql_error());
$this->resultado();
}
private function resultado()
{
$this->row=mysql_fetch_array($this->query)
return $this->row;
}
$con=new conectar();//inicializo clase
$resul=$con->consulta("select * from usuario");
/PHP]

Última edición por carlos_belisario; 19/07/2010 a las 16:02 Razón: error de transcripcion
  #2 (permalink)  
Antiguo 19/07/2010, 15:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: xq el retur no me devuelve el valor??

no te marca ningún error al usar los dos métodos con el mismo nombre???
  #3 (permalink)  
Antiguo 19/07/2010, 15:30
Avatar de johnsinapsis  
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: xq el retur no me devuelve el valor??

Yo no veo la clase inicializada. Debes instanciar la clase con new y el nombre de la función constructora que debe ser el mismo nombre de la clase más los parámetros que lleve.
  #4 (permalink)  
Antiguo 19/07/2010, 16:00
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: xq el retur no me devuelve el valor??

no puse la variable donde inicializo la clase y solo lo q vi necesqario y los nombres son distintos loq pasa es que pegue mal el nombre de la segunda es resultados ya la edito para que se vea bien disculpen
  #5 (permalink)  
Antiguo 19/07/2010, 16:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: xq el retur no me devuelve el valor??

Y el "punto y coma"?

Cita:
$this->row=mysql_fetch_array($this->query) <-- Aqui falta
Vas a usar $this->row para algun otro proposito aparte de devolver el valor de mysql_fetch_array()?
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 19/07/2010, 18:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: xq el retur no me devuelve el valor??

Porque si lo que quieres es regresar la fila te faltaría el "return" para regresar el row.

Saludos.
  #7 (permalink)  
Antiguo 19/07/2010, 18:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: xq el retur no me devuelve el valor??

GatorV, el return si esta, yo solo preguntaba porque si no va a usar $this->row podria solamente hacer return mysql_fetch_bla(bla bla);
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 19/07/2010, 18:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: xq el retur no me devuelve el valor??

Me refiero al return desde la clase consulta, ya que es donde lo esta mandando llamar ya que hace $resul = $this->consulta() si ahi no pone el return nunca va a ver el row...
  #9 (permalink)  
Antiguo 19/07/2010, 19:04
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: xq el retur no me devuelve el valor??

gracias por sus respuestas no voy a usar el $this->row dentro de la clase para otra cosa lo tengo es para traer los datos de la consulta y al hacer el retur $this->row no estoy devolviendo el resultado?? disculpen la ignorancia
  #10 (permalink)  
Antiguo 19/07/2010, 19:09
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: xq el retur no me devuelve el valor??

gracias por sus respuestas tenian razon el return debia hacerlo desde el metodo consulta y no desde el respuesta muchas gracias
  #11 (permalink)  
Antiguo 19/07/2010, 19:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: xq el retur no me devuelve el valor??

El return siempre lo debes poner en donde quieras devolver un valor, en cualquier función o método.
  #12 (permalink)  
Antiguo 19/07/2010, 19:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: xq el retur no me devuelve el valor??

carlos_belisario, en consulta deberias devolver el recurso generado por MySQL para tener acceso al juego de resultados, y tener otra funcion publica para obtener cada registro, es decir:

Código PHP:
Ver original
  1. public function consulta($query)
  2. {
  3. $this->query=mysql_query($query) or die ('Error al realizar consulta: ' . mysql_error());
  4. $this->query;
  5. }
  6. public function resultado()
  7. {
  8. return mysql_fetch_array($this->query) or die('Error leyendo registro: ' . mysql_error());
  9. }

mysql_query ejecuta una consulta, crea un juego de registros al y devuelve la ID del recurso para acceder a ellos, solo con funciones de resultados como mysql_fetch_XXX (donde XXX puede ser array, assoc, row) o mysql_result.
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 20/07/2010, 15:21
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: xq el retur no me devuelve el valor??

gracias por sus respuestas gatorv yo pensé que como el método consulta llamaba a resultado al ejecutarse a resultado() retornaba el valor desde esta claro una cosa era lo que yo pensaba y otra lo que debe de ser en verdad pero todos los dias se aprende algo nuevo gracias por la correccion
triby yo pense en hacer algo asi como lo que me pones pero es bueno que llamen al metodo de resultados directo desde donde se llama la clase ej:
$consulta->resultado(); el resultado no depende directamente de la consulta?? yo al principio tenia solo hasta consulta y retornaba era el $this->query en consulta sin tener el metodo resultado pero quise ir un poco mas alla y que esta de una vez con solo poner la sentencia me diera el resultado de la misma alomejor esta de mas lo q hice gracias por sus respuestas y aclararme las dudas y como siempre digo crearme una nueva para aprender mas
  #14 (permalink)  
Antiguo 21/07/2010, 13:38
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: xq el retur no me devuelve el valor??

carlos_belisario, de poderse, si se puede lo que pretendes, seria cuestion de probarlo, pero con un while() dentro de $this->resultado() para leer todos los registros.

Alguna vez intente algo asi y, la verdad, no recuerdo la razon por la que mejor regrese al metodo tradicional, pero hazlo, pruebalo y nos cuentas como te fue.
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 21/07/2010, 19:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: xq el retur no me devuelve el valor??

gracias por las respuesta yo hoy justamente necesite traerme todos los resultados para un proyecto que estoy haciendo en el trabajo pero como estaba ofuscado x el trabajo lo que se me ocurrio fue crear otro metodo que me trajera la consulta es decir me retornara el $this->query xq ya yo tengo consultas asociadas al retorno del resultado pero si lo hago con el while como me indicaste creo que seria mucho mejor gracias por la idea lo probare y les cuento como me fue

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:29.