Foros del Web » Programando para Internet » PHP »

Catchable fatal error: Object of class mysqli_result could not be converted to string

Estas en el tema de Catchable fatal error: Object of class mysqli_result could not be converted to string en el foro de PHP en Foros del Web. Hola, estoy haciendo un sistema de inventario, y queria que se mostrara el nombre del slot 1 de X persona y me sale este error: ...
  #1 (permalink)  
Antiguo 24/07/2013, 10:17
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Catchable fatal error: Object of class mysqli_result could not be converted to string

Hola, estoy haciendo un sistema de inventario, y queria que se mostrara el nombre del slot 1 de X persona y me sale este error:

Catchable fatal error: Object of class mysqli_result could not be converted to string in .... on line 27 (osea la linea donde pongo la variable $slot1.

Nunca me habia salido este error y estoy como loco u.u, un saludo y gracias!


Código:
<?php
$usuarios_nickname = $_SESSION['usuarios_nickname'];
$result = mysqli_query($conexion, "SELECT * FROM personajes_inventario WHERE personajes_inventario_nickname='$usuarios_nickname'");


// Seleccionando objeto slot 1:
$slot1 = mysqli_query($conexion,"SELECT personajes_inventario_nombre FROM personajes_inventario WHERE personajes_inventario_nickname='$usuarios_nickname' AND personajes_inventario_slot='1'");


echo "<table border='1' align='center'>";
echo "<tr bgcolor='#CCCCCC'>";
echo "<td><b>Slot 1</b></td>";
echo "<td><b>Slot 2</b></td>";
echo "<td><b>Slot 3</b></td>";
echo "<td><b>Slot 4</b></td>";
echo "<td><b>Slot 5</b></td>";
echo "</tr>";



    echo "<td>$slot1</td>";
    echo "<td>SSSSS</td>";
    echo "<td>DDDD</td>";
    echo "<td>FFFF</td>";
	echo "<td>GGGG</td>";
    echo "</tr>";


echo "</table>";
?>
  #2 (permalink)  
Antiguo 24/07/2013, 10:50
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Catchable fatal error: Object of class mysqli_result could not be converte

Tal como dice el error, estás tratando de imprimir como texto un objeto, esto no puede hacerse, luego de usar mysqli_query, debes convertir los resultados a arreglos usando algún fetch

$mf=mysqli_fetch_row($slot1);
$mf=mysqli_fetch_assoc($slot1);
$mf=mysqli_fetch_array($slot1);
etc...

Luego de eso debes imprimir solo el campo que quieres, por ejemplo personajes_inventario_nombre

echo "<td>".$mf[personajes_inventario_nombre]."</td>";
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 24/07/2013, 11:13
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Catchable fatal error: Object of class mysqli_result could not be converte

Cita:
Iniciado por GaMeouT Ver Mensaje
Hola, estoy haciendo un sistema de inventario, y queria que se mostrara el nombre del slot 1 de X persona y me sale este error:

Catchable fatal error: Object of class mysqli_result could not be converted to string in .... on line 27 (osea la linea donde pongo la variable $slot1.

Nunca me habia salido este error y estoy como loco u.u, un saludo y gracias!


Código:
<?php

// Seleccionando objeto slot 1:
$slot1 = mysqli_query($conexion,"SELECT personajes_inventario_nombre
 FROM personajes_inventario WHERE
 personajes_inventario_nickname='$usuarios_nickname' AND
 personajes_inventario_slot='1'");


echo "<table border='1' align='center'>";
echo "<tr bgcolor='#CCCCCC'>";
echo "<td><b>Slot 1</b></td>";
echo "<td><b>Slot 2</b></td>";
echo "<td><b>Slot 3</b></td>";
echo "<td><b>Slot 4</b></td>";
echo "<td><b>Slot 5</b></td>";
echo "</tr>";



    echo "<td>$slot1</td>";
    echo "<td>SSSSS</td>";
    echo "<td>DDDD</td>";
    echo "<td>FFFF</td>";
	echo "<td>GGGG</td>";
    echo "</tr>";


echo "</table>";
?>
Cuando haces una consulta, mysqli te devuelve un objeto result que es iterable y te devuelve el los registros de la consulta de diferentes formas, para detalles mira la documentación: http://www.php.net/manual/en/class.mysqli-result.php.
Lo que te dice el error es que estas tratando de convertir ese tipo de objeto a una cadena. Para corregirlo puedes hacer lo siguiente.

Código PHP:
Ver original
  1. $ResultSet = mysqli_query($conexion,"SELECT personajes_inventario_nombre AS nombre
  2.                         FROM personajes_inventario
  3.                         WHERE personajes_inventario_nickname='$usuarios_nickname'
  4.                         AND personajes_inventario_slot='1'"
  5.             );
  6.  
  7. //obtienes tu registro
  8. $PersonaInventario = $ResultSet->fech_object();
  9. //imprimes contenido
  10. echo $PersonaInventario->nombre;
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 24/07/2013, 12:18
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Catchable fatal error: Object of class mysqli_result could not be converte

Cita:
Iniciado por stramin Ver Mensaje
Tal como dice el error, estás tratando de imprimir como texto un objeto, esto no puede hacerse, luego de usar mysqli_query, debes convertir los resultados a arreglos usando algún fetch

$mf=mysqli_fetch_row($slot1);
$mf=mysqli_fetch_assoc($slot1);
$mf=mysqli_fetch_array($slot1);
etc...

Luego de eso debes imprimir solo el campo que quieres, por ejemplo personajes_inventario_nombre

echo "<td>".$mf[personajes_inventario_nombre]."</td>";
no sabia eso, muchas gracias, todo funcionando!
  #5 (permalink)  
Antiguo 24/07/2013, 12:22
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Catchable fatal error: Object of class mysqli_result could not be converte

Cita:
Iniciado por hhs Ver Mensaje
Cuando haces una consulta, mysqli te devuelve un objeto result que es iterable y te devuelve el los registros de la consulta de diferentes formas, para detalles mira la documentación...
Gracias por la informacion, no tenia ni idea. Llevo programando poco y aun no me entero de las cosas

Etiquetas: class, fatal, mysql, object, select, string, usuarios, variable
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 13:55.