Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

error al realizar consulta

Estas en el tema de error al realizar consulta en el foro de Mysql en Foros del Web. hola tengo un codigo que me da este error: Código: ( ! ) Notice: Trying to get property of non-object in C:\wamp\www\Blog\ES\index.php on line 58 ...
  #1 (permalink)  
Antiguo 22/05/2011, 08:08
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 12 años, 11 meses
Puntos: 3
Exclamación error al realizar consulta

hola tengo un codigo que me da este error:

Código:
( ! ) Notice: Trying to get property of non-object in C:\wamp\www\Blog\ES\index.php on line 58
Call Stack
#	Time	Memory	Function	Location
1	0.0012	678200	{main}( )	..\index.php:0

( ! ) Fatal error: Call to a member function fetch_assoc() on a non-object in C:\wamp\www\Blog\ES\index.php on line 62
Call Stack
#	Time	Memory	Function	Location
1	0.0012	678200	{main}( )	..\index.php:0
este es el codigo php:
Código PHP:
<?php     
     $db 
= new mysqli('localhost''user''pass''blogdb'); //conexion a base de datos (host, usuario, contraseña, base datos)
     
     
$query "select articulos.articulid, articulos.nombrees, articulos.fecha, articulos.tipo, articulos.resumenes, articulos.ranking from articulos";
     
$result $db->query($query);

     
$num_results $result->num_rows;  //linea 58 linea 58 linea 58
     
     
for ($i=0$i 20$i++)
     {
         
$row $result->fetch_assoc(); //linea 62 linea 62 linea 62
         
echo ($i+1);
         echo 
stripslashes($row['nombrees']);
     }
     
     
$result->free();
     
$db->close();
    
?>
porfavor espero que puedan ayudarme ,

saludos.
  #2 (permalink)  
Antiguo 22/05/2011, 08:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error al realizar consulta

No hay errores en la consilta, o al menos no son errores sintácticos.
Lo que sí te diría es que no hace falta que indiques en el SELECT el nombre de la tabla si estás consultando una sola tabla. Sólo puede sacar campos de ella.
Código MySQL:
Ver original
  1.     articulid,
  2.     nombrees,
  3.     fecha,
  4.     tipo,
  5.     resumenes,
  6.     ranking
  7. FROM articulos
Pero por otro lado, no estás verificando que realmente estés obteniendo un resultado, o incluso que no haya un error no sintáctico (como podría ser el nombre equivocado de una columna). Eso es una verificación que siempre hay que hacer.

También, observando lo que pones de PHP, te podría decir que es un error poner que se revisen los registros del 0 al 20... ¿Cómo sabes que efectivamente te está devolviendo 20 registros? Lo que normalmente se hace es recorrer la tabla resultado mientras haya registros. Darle una cifra fija te generará errores de ejecución si por alguna razón la cantidad de registros obtenidos es menor.

De todos modos esos detalles son de programación en PHP, no de bases de datos, por lo que te sugiero que primero los revises y luego pregunta en el foro de PHP, que es donde mejor conocen el tema (y es un foro con mucho movimiento).

La forma habitual en que se verifica que tengas datos la puedes ver en las FAQs de PHP, en lo referido a bases de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/05/2011, 23:57
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: error al realizar consulta

ok, muchisimas gracias
  #4 (permalink)  
Antiguo 23/05/2011, 00:10
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: error al realizar consulta

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No hay errores en la consilta, o al menos no son errores sintácticos.
Lo que sí te diría es que no hace falta que indiques en el SELECT el nombre de la tabla si estás consultando una sola tabla. Sólo puede sacar campos de ella.
Código MySQL:
Ver original
  1.     articulid,
  2.     nombrees,
  3.     fecha,
  4.     tipo,
  5.     resumenes,
  6.     ranking
  7. FROM articulos
Pero por otro lado, no estás verificando que realmente estés obteniendo un resultado, o incluso que no haya un error no sintáctico (como podría ser el nombre equivocado de una columna). Eso es una verificación que siempre hay que hacer.

[URL="http://www.forosdelweb.com/f18/faqs-php-530600/"]FAQs de PHP[/URL], en lo referido a bases de datos.
he sustituido
Código PHP:
$query "select articulos.articulid, articulos.nombrees, articulos.fecha, articulos.tipo, articulos.resumenes, articulos.ranking from articulos"
por
Código PHP:
$query "select * from articulos"
y funciona correctamente... pero no entiendo porque no funciona seleccionando
las columnas especificamente.. =/
NOTA: He comprobado los nombres de las columnas y eran correctos.
  #5 (permalink)  
Antiguo 23/05/2011, 05:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error al realizar consulta

Cita:
pero no entiendo porque no funciona seleccionando
las columnas especificamente.. =/
Para saberlo deberías empezar por recuperar el error devuelto por MySQL, cosa que no estás haciendo. Sólo ese error puede orientarte acerca de qué es lo que estaba mal en la consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 23/05/2011, 10:43
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: error al realizar consulta

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Para saberlo deberías empezar por recuperar el error devuelto por MySQL, cosa que no estás haciendo. Sólo ese error puede orientarte acerca de qué es lo que estaba mal en la consulta.
ok muchas graacias

Etiquetas: realizar
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 00:40.