Foros del Web » Programando para Internet » PHP »

Fatal error: Call to a member function fetch_assoc() on a non-object

Estas en el tema de Fatal error: Call to a member function fetch_assoc() on a non-object en el foro de PHP en Foros del Web. Hola amigos! Estoy desarrollando un sistema de inventarios, es un proyecto que tengo que entregar en la escuela, así que no soy experta en este ...
  #1 (permalink)  
Antiguo 05/11/2014, 22:15
Avatar de i09120190  
Fecha de Ingreso: noviembre-2014
Mensajes: 19
Antigüedad: 9 años, 5 meses
Puntos: 0
Fatal error: Call to a member function fetch_assoc() on a non-object

Hola amigos!
Estoy desarrollando un sistema de inventarios, es un proyecto que tengo que entregar en la escuela, así que no soy experta en este tipo de desarrollo aunque me gusta aprenderlo.
Bien, pues mi problema es que tratando de obtener mis datos de mi tabla tbl_articulo hacia una tabla en HTML, vi algunos ejemplo y según yo iba todo bien pero no solo no me arroja los datos, si no que aparte me marca el siguiente error:

Fatal error: Call to a member function fetch_assoc() on a non-object

Este es mi código:
$con = mysql_connect("localhost","root"," ");
mysql_select_db("security",$con);
$q_ids = mysql_query("Select * from tbl_articulo ORDER BY articulo asc");

?>
<form id="frmlogin" name="frmlogin" method="POST" action="guardarArticulo.php" class="login">

<table border=1 width="80%">
<thead>
<tr>
<td><b>Artculo</b></td>
<td><b>Estado</b></td>
<td><b>Observaciones</b></td>
<td><b>Stock</b></td>
<td></td>
<td></td>
</tr>
<tbody>
<?php while($row=$q_ids->fetch_assoc()){ ?>
<tr>
<td><?php echo $row['articulo'];?>
</td>
<td>
<?php echo $row['estado'];?>
</td>
<td>
<?php echo $row['observaciones'];?>
</td>
<td>
<?php echo $row['stock'];?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</form>



Espero que me puedan ayudar amigos expertos, en verdad les agradecería mucho.

Última edición por i09120190; 06/11/2014 a las 00:58
  #2 (permalink)  
Antiguo 06/11/2014, 02:45
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Fatal error: Call to a member function fetch_assoc() on a non-object

Si estás aprendiendo, fíjate siempre en lo que te dicen los errores. En este caso te dice que el método fetch_assoc() se está intentando ejecutar desde una variable que no es un objeto. Y por eso falla.

Esta llamada la tienes en:

Código PHP:
Ver original
  1. $row=$q_ids->fetch_assoc()

Y la variable $q_ids la obtienes en la línea:

Código PHP:
Ver original
  1. $q_ids = mysql_query("Select * from tbl_articulo ORDER BY articulo asc");

Si te fijas en la documentación de PHP la función mysql_query no devuelve un objeto, si no un resource o un boolean:

http://php.net/manual/es/function.mysql-query.php

Por tanto la sentencia:

Código PHP:
Ver original
  1. $q_ids->fetch_assoc()

Siempre te va a dar error.

Prueba a cambiar eso por mysql_fetch_assoc(). Es decir, dejando el código así:

Código HTML:
Ver original
  1. <form id="frmlogin" name="frmlogin" method="POST" action="guardarArticulo.php" class="login">
  2.  
  3. <table border=1 width="80%">
  4. <tr>
  5. <td><b>Artculo</b></td>
  6. <td><b>Estado</b></td>
  7. <td><b>Observaciones</b></td>
  8. <td><b>Stock</b></td>
  9. <td></td>
  10. <td></td>
  11. </tr>
  12. <?php while($row=mysql_fetch_assoc($q_ids)){ ?>
  13. <tr>
  14. <td><?php echo $row['articulo'];?>
  15. </td>
  16. <td>
  17. <?php echo $row['estado'];?>
  18. </td>
  19. <td>
  20. <?php echo $row['observaciones'];?>
  21. </td>
  22. <td>
  23. <?php echo $row['stock'];?>
  24. </td>
  25. </tr>
  26. <?php } ?>
  27. </form>

Si te fijas, sólo he cambiado la línea:

Código PHP:
Ver original
  1. <?php while($row=$q_ids->fetch_assoc()){ ?>

Por

Código PHP:
Ver original
  1. <?php while($row=mysql_fetch_assoc($q_ids)){ ?>

Prueba a ver si así te funciona. :)
__________________
Unelink.es - VPS, servidores dedicados, hosting y dominios. 10 años a tu lado.

Etiquetas: call, fatal, function, html, mysql, select, tabla
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 17:01.