Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] después de instanciar, el valor del objeto se pierde

Estas en el tema de después de instanciar, el valor del objeto se pierde en el foro de PHP en Foros del Web. pues ese es mi problema. tengo el siguiente código que lo que hace es que si el usuario presiona un botón con id dinámica el ...
  #1 (permalink)  
Antiguo 06/05/2013, 10:23
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
después de instanciar, el valor del objeto se pierde

pues ese es mi problema.

tengo el siguiente código que lo que hace es que si el usuario presiona un botón con id dinámica el post con dicha id se muestra. pero después de hacer la instancia al objeto pasandole como valor el id del botón el valor de la consulta se pierde, queda a cero y no entiendo por qué, he revisado el código y no hay errores de sintaxis, tampoco errores en la cosulta, de hecho no me devuelve ningún error. simplemente al hacer in print_r(); de la variable esta se muestra como 0.

si alguien encuentra el error y me comenta donde está se lo agradezco.


esta condición está en funciones.php (se muestra en el index y lo que hace esta condición es que si el usuario pulsa sobre un botón para leer la publicación entera se muestran todos los valores de la tabla noticias que coinciden su id con la del botón dinámico.)
Código PHP:
Ver original
  1. if(isset($_GET["leer_post"]))
  2.         {
  3.             print_r($_GET); //aquí sí tiene valor $_GET["leer_post"]
  4.             $muestra_post= new Posts();
  5.             $muestra_post=$muestra_post->leer_post($_GET["leer_post"]);
  6.             print_r($muestra_post); //aquí ya $muestra_post; no tiene ningún valor
  7.             for($i=0; $i<sizeof($muestra_post); $i++)
  8.             {
  9.                
  10.                 if($_GET["leer_post"]=$muestra_post[$i]["id"])
  11.                 {
  12.                     echo $muestra_post[$i]["titulo"] ." ". $muestra_post[$i]["post"] ." ". $muestra_post[$i]["id_usuarios"] ." ". $muestra_post[$i]["fecha"]  ;
  13.                 }
  14.                 else
  15.                 {
  16.                     echo "No hay post que mostrar";
  17.                 }
  18.             }

esta es la clase leer_post(); que recibe como parámentro $_GET["leer_post"] para seleccionar únicamente la noticia cuya id coincida con el valor de $_GET["leer_post"]

Código PHP:
Ver original
  1. public function leer_post($ide)
  2.         {
  3.             $consulta="SELECT * from posts where id='".$ide."'";
  4.             $result_conexion=Conectar::CONNECT($consulta);
  5.             while($resultado=mysql_fetch_array($result_conexion));
  6.             {
  7.                 $this->result2[]=$resultado;
  8.             }
  9.             return $this->result2;
  10.         }

esto es lo que me devuelven los print_r();

Cita:

Array ( [leer_post] => 1 ) Array ( [0] => ) No hay post que mostrar
  #2 (permalink)  
Antiguo 06/05/2013, 10:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

Pues si no depuras tus consultas ni los pasos que das, ¿cómo esperas que adivinemos dónde puede estar el problema?

Veo código pero no veo intenciones de querer saber lo que sucede dentro de tu código, además, ¿si notaste que en la siguiente linea no estás comparando sino asignando?
Código PHP:
if($_GET["leer_post"]=$muestra_post[$i]["id"]) 
Además, si no obtienes errores en la consulta quiere decir que la consulta es correcta, pero implica que no hay datos y por eso no obtienes nada, ¿hay datos que coincidan en la base de datos?

Veo muchos huecos de información que bien podrías ayudarnos a ver.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/05/2013, 10:46
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues si no depuras tus consultas ni los pasos que das, ¿cómo esperas que adivinemos dónde puede estar el problema?

Veo código pero no veo intenciones de querer saber lo que sucede dentro de tu código, además, ¿si notaste que en la siguiente linea no estás comparando sino asignando?
Código PHP:
if($_GET["leer_post"]=$muestra_post[$i]["id"]) 
Además, si no obtienes errores en la consulta quiere decir que la consulta es correcta, pero implica que no hay datos y por eso no obtienes nada, ¿hay datos que coincidan en la base de datos?

Veo muchos huecos de información que bien podrías ayudarnos a ver.
tienes razón, las prisas al escribir me han jugado doble mala pasada:

no he ido comentando para que os entereis

y no me he dado cuenta de esa asignación en vez de comparación ==.

sorry :D

como me has citado no puedo editar mi mensaje para comentarlo. así que lo vuelvo a poner pero todo comentado.

esta condición se encuentra en funciones.php que a su vez se muestra en blog_index.php
Código PHP:
Ver original
  1. if(isset($_GET["leer_post"])) //si existe $_GET["leer_post hace lo siguiente"]
  2.         {
  3.             print_r($_GET); //comprobación del valor de todos los $_GET
  4.             //instancia hacia la clase Posts, método leer_post cuyo parámetro es $_GET["leer_post"]
  5.             $muestra_post= new Posts();
  6.             $muestra_post=$muestra_post->leer_post($_GET["leer_post"]);
  7.             print_r($muestra_post); //aquí el error, en este momento $muestra_post está vacío
  8.             //for para recorrer el array retornado en el método leer_post();
  9.             for($i=0; $i<sizeof($muestra_post); $i++)
  10.             {
  11.                
  12.                 if($_GET["leer_post"]==$muestra_post[$i]["id"]) //si $_GET["leer_post"] es igual al id de la noticia entonces muestra todos los valores
  13.                 {
  14.                     echo $muestra_post[$i]["titulo"] ." ". $muestra_post[$i]["post"] ." ". $muestra_post[$i]["id_usuarios"] ." ". $muestra_post[$i]["fecha"]  ;
  15.                 }
  16.                 else
  17.                 {
  18.                     echo "No hay post que mostrar"; //sino devuelve un mensaje de error
  19.                 }
  20.             }
  21.                
  22.         }

esta es la clase con su método

Código PHP:
Ver original
  1. class Posts
  2.     {
  3.                   private $result2=array(); //declaro la variable tipo array
  4.  
  5.                   public function leer_post($ide) //el método recibe el parámetro de la instancia
  6.         {
  7.             $consulta="SELECT * from posts where id='".$ide."'"; //entre todos los post selecciono únicamente cuyo id es el que contiene $ide;
  8.             $result_conexion=Conectar::CONNECT($consulta);
  9.             while($resultado=mysql_fetch_array($result_conexion));
  10.             {
  11.                 $this->result2[]=$resultado; //mientras $resultado tenga valor se guarda en $result2[];
  12.             }
  13.             return $this->result2; //aquí retorna el valor y fin del método
  14.         }
  15.           }

gracias!!!!
  #4 (permalink)  
Antiguo 06/05/2013, 10:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

Eso no significa depurar.

Depurar en sus términos mas primitivos consiste en ir imprimiendo texto con información útil del estado de ejecución del script.

Por ejemplo, estás usando print_r() y eso está bien, pero no lo usas mas allá, estás olvidando depurar dentro de los métodos donde dices tienes problemas.

Uno de ellos sería el que recibe el ID y ejecuta la consulta, aquí:
Código PHP:
$consulta="SELECT * from posts where id='".$ide."'";

echo 
"SQL: $consulta"
¿Está bien formada la consulta?

Yo creo que si, pero si no estás obteniendo valores de la base de datos, ¿dónde se ha perdido el ID?

No tiene sentido, ya que fuera del método donde lo utilizas haces print_r() y $_GET si tiene datos, ¿has intentado hacer lo mismo después de la consulta?

Código PHP:
print_r($muestra_post); //aquí ya $muestra_post; no tiene ningún valor

print_r($_GET); 
¿Qué se observa?

Casi por intentar adivinar puedo decir que no tienes errores de código, si no obtienes datos entonces no tienes datos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/05/2013, 11:10
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
Eso no significa depurar.

Depurar en sus términos mas primitivos consiste en ir imprimiendo texto con información útil del estado de ejecución del script.

Por ejemplo, estás usando print_r() y eso está bien, pero no lo usas mas allá, estás olvidando depurar dentro de los métodos donde dices tienes problemas.

Uno de ellos sería el que recibe el ID y ejecuta la consulta, aquí:
Código PHP:
$consulta="SELECT * from posts where id='".$ide."'";

echo 
"SQL: $consulta"
¿Está bien formada la consulta?

Yo creo que si, pero si no estás obteniendo valores de la base de datos, ¿dónde se ha perdido el ID?

No tiene sentido, ya que fuera del método donde lo utilizas haces print_r() y $_GET si tiene datos, ¿has intentado hacer lo mismo después de la consulta?

Código PHP:
print_r($muestra_post); //aquí ya $muestra_post; no tiene ningún valor

print_r($_GET); 
¿Qué se observa?

Casi por intentar adivinar puedo decir que no tienes errores de código, si no obtienes datos entonces no tienes datos.
he puesto varios print_r(); y al parecer todo está bien escrito.

Código PHP:
Ver original
  1. print_r($_GET); //comprobación del valor de todos los $_GET (sí tiene valor)
  2. print_r($muestra_post); //aquí el error, en este momento $muestra_post está vacío
  3. print_r($_GET); //comprobación después de la instancia (sí tiene valor)
  4.  
  5. /*en el método*/
  6.  
  7. print_r($consulta); //contiene todo el valor de la consulta
  8. print_r($result_conexion); //contiene toda la consulta sin procesar por un for

estos son los resultados

Cita:
Array ( [leer_post] => 1 ) SELECT * from posts where id='1'Resource id #7Array ( [0] => ) Array ( [leer_post] => 1 ) No hay post que mostrar
EDITO

la tabla posts sí tiene post introducidos, es lo primero que miré porque una vez ya me pasó jeje

Última edición por guardarmicorreo; 06/05/2013 a las 11:12 Razón: añadir un matiz
  #6 (permalink)  
Antiguo 06/05/2013, 11:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

¿Ves como no se perdía ningún valor?

Y además, la consulta está bien escrita, como dices, si hay datos entonces debería devolver algo.

¿Pero por qué no lo hace?

Te hace falta depurar dentro de tu método entonces ya que por fuera todo anda bien.

¿Has intentado usar mysql_num_rows() después de ejecutar la consulta para comprobar que efectivamente tengas resultados?

Porque si lo que devuelves tiene algo no lo vemos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 06/05/2013, 11:31
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Ves como no se perdía ningún valor?

Y además, la consulta está bien escrita, como dices, si hay datos entonces debería devolver algo.

¿Pero por qué no lo hace?

Te hace falta depurar dentro de tu método entonces ya que por fuera todo anda bien.

¿Has intentado usar mysql_num_rows() después de ejecutar la consulta para comprobar que efectivamente tengas resultados?

Porque si lo que devuelves tiene algo no lo vemos.
el código que he puesto es todo el código que hay, lo demás está relacionado con otras partes de la web que funcionan correctamente. pero si quieres lo pongo.

no entiendo a qué te refieres con mysql_num_rows() ¿está mal hecho con mysql_fetch_array()? ¿cómo debo utilizar mysql_num_rows? (nunca lo he utilizado :S )
  #8 (permalink)  
Antiguo 06/05/2013, 11:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

No, no, no hagas conjeturas sin informarte antes.

Yo no he dicho que hagas mal uso de mysql_fetch_array(), solo que, ¿cómo estás seguro si está devolviendo resultados o no?

Eso no lo sabemos, y por eso podrías usar mysql_num_rows() después de ejecutar la consulta para comprobar si hay o no resultados, ¿entiendes?

Código PHP:
$consulta="SELECT * from posts where id='".$ide."'";
$result_conexion=Conectar::CONNECT($consulta);


// AQUI verificamos los resultados

echo 'TOTAL=' mysql_num_rows($result_conexion);

while(
$resultado=mysql_fetch_array($result_conexion));
{
  
$this->result2[]=$resultado;

Eso debería mostrarte el total de resultados que arroja tu consulta, ¿qué muestra?

A esta parte era la que me refería, te falta aprender a depurar mucho más, ya que la mayoría de las veces el problema está frente a nosotros pero no lo vemos, simplemente porque no tenemos hábitos de análisis y depuración.

Y todas esas veces no hace falta abrir temas para que nos ayuden a depurar, cosa que uno puede hacer solo, ¿no te parece?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 06/05/2013, 11:56
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
No, no, no hagas conjeturas sin informarte antes.

Yo no he dicho que hagas mal uso de mysql_fetch_array(), solo que, ¿cómo estás seguro si está devolviendo resultados o no?

Eso no lo sabemos, y por eso podrías usar mysql_num_rows() después de ejecutar la consulta para comprobar si hay o no resultados, ¿entiendes?

Código PHP:
$consulta="SELECT * from posts where id='".$ide."'";
$result_conexion=Conectar::CONNECT($consulta);


// AQUI verificamos los resultados

echo 'TOTAL=' mysql_num_rows($result_conexion);

while(
$resultado=mysql_fetch_array($result_conexion));
{
  
$this->result2[]=$resultado;

Eso debería mostrarte el total de resultados que arroja tu consulta, ¿qué muestra?

A esta parte era la que me refería, te falta aprender a depurar mucho más, ya que la mayoría de las veces el problema está frente a nosotros pero no lo vemos, simplemente porque no tenemos hábitos de análisis y depuración.

Y todas esas veces no hace falta abrir temas para que nos ayuden a depurar, cosa que uno puede hacer solo, ¿no te parece?
no hombre! si era una pregunta, no pensé mal jejeje :D

no sabía utilizar mysql_num_rows y gracias a ti ahora se algo nuevo :D

mysql_num_rows(); me devuelve lo siguiente

Cita:
TOTAL=1
y eso significa que sí está recogiendo los valores de un post no?

o solo la id del post?

la estructura de la tabla es

id|titulo|id_usuarios|post|fecha

id_usuarios es clave foránea y fecha está en DATETIME por si sirve de algo :D

no entiendo lo que pasa si hasta la consulta sí obtiene valores :S
  #10 (permalink)  
Antiguo 06/05/2013, 12:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

De hecho eso demuestra que el valor si se pasa, la consulta si se está ejecutando y efectivamente hay resultados en el puntero.

¿Por qué no se están extrayendo bien?

Pues yo creo que si estás extrayendo correctamente, depura con print_r() dentro del bucle que usas para recuperar los datos antes de devolverlos dentro de leer_post() a ver que muestra.
Código PHP:
while($resultado=mysql_fetch_array($result_conexion));
{
  
$this->result2[]=$resultado;

  
print_r($resultado);
}

echo 
'RESULTADO=';
print_r($this->result2); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 06/05/2013, 12:15
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
De hecho eso demuestra que el valor si se pasa, la consulta si se está ejecutando y efectivamente hay resultados en el puntero.

¿Por qué no se están extrayendo bien?

Pues yo creo que si estás extrayendo correctamente, depura con print_r() dentro del bucle que usas para recuperar los datos antes de devolverlos dentro de leer_post() a ver que muestra.
Código PHP:
while($resultado=mysql_fetch_array($result_conexion));
{
  
$this->result2[]=$resultado;

  
print_r($resultado);
}

echo 
'RESULTADO=';
print_r($this->result2); 
este es con diferencia el problema más grave que he tenido en meses ^^

me devuelve esto

Cita:
RESULTADO=Array ( [0] => )
:S x100
  #12 (permalink)  
Antiguo 06/05/2013, 12:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

Vaya, ¿entonces no se imprime nada dentro del bucle?

Prueba con var_dump() en lugar de print_r(), es más explicito.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 06/05/2013, 12:22
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
Vaya, ¿entonces no se imprime nada dentro del bucle?

Prueba con var_dump() en lugar de print_r(), es más explicito.
no lo había puesto dentro del bucle, sino fuera del while, ahora también lo he puesto dentro del while


Código PHP:
Ver original
  1. while($resultado=mysql_fetch_array($result_conexion));
  2.             {
  3.                 $this->result2[]=$resultado;
  4.                 print_r($this->result2);
  5.                 echo "fin";
  6.                
  7.             }
  8.             echo 'RESULTADO=';
  9.             print_r($this->result2);
  10.             echo "fin2";
  11.             return $this->result2;

y aún así me devuelve esto

Cita:
Array ( [0] => ) finRESULTADO=Array ( [0] => ) fin2No hay post que mostrar
  #14 (permalink)  
Antiguo 06/05/2013, 12:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

No, no, ¿acaso no viste mi mensaje anterior completo?

Tienes que depurar el resultado individual, no toda la lista dentro del bucle.

Código PHP:
while($resultado=mysql_fetch_array($result_conexion));
{
  
$this->result2[]=$resultado;

  echo 
'RESULTADO INDIVIDUAL=';
  
var_dump($resultado);

Y usando var_dump() claro está, pon más atención.

Usa tu sentido común.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 06/05/2013, 12:30
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
No, no, ¿acaso no viste mi mensaje anterior completo?

Tienes que depurar el resultado individual, no toda la lista dentro del bucle.

Código PHP:
while($resultado=mysql_fetch_array($result_conexion));
{
  
$this->result2[]=$resultado;

  echo 
'RESULTADO INDIVIDUAL=';
  
var_dump($resultado);

Y usando var_dump() claro está, pon más atención.

Usa tu sentido común.
cierto :) sorry :D

me devuelve esto

Cita:
bool(false) finRESULTADO=Array ( [0] => ) fin2No hay post que mostrar
no entiendo por qué pone boolean falso :S
  #16 (permalink)  
Antiguo 06/05/2013, 12:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

¡Excelente!

Ahora ya sabemos algo para comenzar a indagar.

Consulta el manual acerca de mysql_fetch_array() para que veas el por qué devuelve false.

De paso te sugiero leer esto:

Anuncio: Extensión MySQL se considera obsoleta
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 06/05/2013, 12:47
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
¡Excelente!

Ahora ya sabemos algo para comenzar a indagar.

Consulta el manual acerca de mysql_fetch_array() para que veas el por qué devuelve false.

De paso te sugiero leer esto:

Anuncio: Extensión MySQL se considera obsoleta
leyendo el manual de php sobre mysql_fetch_array(); dice

Cita:
Devuelve un array de cadenas que corresponde a la fila recuperada, o FALSE si no hay más filas.
evidentemente hay filas, por lo menos una. entonces no entiendo por qué devuelve false. aunque utilice un while, por lo menos el while se cumple una vez no?

he buscado más información aparte de la oficial y no me aclaran nada :S

¿cual es el problema?

por cierto, gracias por lo de la actualización, la verdad es que cuando termine de controlar bien el "viejo" php tendré que actualizarme jejeje ya me lo han dicho :D
  #18 (permalink)  
Antiguo 06/05/2013, 13:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

Si devuelve FALSE entonces no hay filas, evidentemente estás confundido.

Vamos, que devuelve FALSE como señal de que no hay más y aún así agregas el resultado a la lista final, es por eso que tienes un array de un elemento vacío.

Algo está sucediendo dentro de ese método, te sugiero depurar todo, probablemente mysql_error() te diga algo en ese punto.

Es imposible adivinar una causa sin mas información, los detalles ahí están, te toca seguir investigando.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 06/05/2013 a las 13:06
  #19 (permalink)  
Antiguo 06/05/2013, 13:16
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
Si devuelve FALSE entonces no hay filas, evidentemente estás confundido.

Vamos, que devuelve FALSE como señal de que no hay más y aún así agregas el resultado a la lista final, es por eso que tienes un array de un elemento vacío.

Algo está sucediendo dentro de ese método, te sugiero depurar todo, probablemente mysql_error() te diga algo en ese punto.

Es imposible adivinar una causa sin mas información, los detalles ahí están, te toca seguir investigando.
seguiré investigando, te agradezco tu gran ayuda. muchísimas gracias, cuando encuentre la solución la pondré :D saludos!
  #20 (permalink)  
Antiguo 07/05/2013, 14:45
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

encontré el problema.

después de sustituir el método por otro nuevamente escrito y quedando exactamente igual vi que funcionaba. así volví a poner ese método y lo comparé con el que sí funcionaba.

¿resultado de todo el análisis?

al final el while hay un maldito y puñetero ';' que no vi.

lo siento por las molestias. gracias por la ayuda ofrecida.

(cada vez mis errores son más sutiles y tontos :S tampoco entiendo cómo es que no me arrojaba un error de sintaxis ya que debería esperar llave y no fin de iteración :S)
  #21 (permalink)  
Antiguo 07/05/2013, 14:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: después de instanciar, el valor del objeto se pierde

Sería interesante ver ambos códigos, para quitar la duda.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #22 (permalink)  
Antiguo 08/05/2013, 00:37
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: después de instanciar, el valor del objeto se pierde

Cita:
Iniciado por pateketrueke Ver Mensaje
Sería interesante ver ambos códigos, para quitar la duda.
le hice también un cambio posteriormente para esclarecer un poco más el código. le cambié el nombre al método (antes era public function leer_post(); ahora es leer_posts(); ) para diferenciarlo totalmente del $_GET["leer_post"] por si por alguna remota posibilidad que obviamente desconozco pudiera crear algún conflicto; si esto es así y tú sabes si creaba conflicto dime el por qué, porque me gustaría saberlo :P

pero prácticamente es el mismo, solo que además sin el ;

te agradezco tu ayuda! :D

Cita:
public function leer_posts($ide)
{
$consulta="SELECT * from posts where id='".$ide."'";
$result_conexion=Conectar::connect($consulta);

while($resultado=mysql_fetch_array($result_conexio n))
{


$this->result2[]=$resultado;

}
return $this->result2;
}

Etiquetas: instanciar, objeto, pierde, select, sql, tabla, usuarios, valor
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 09:27.