Foros del Web » Programando para Internet » PHP »

Que significa el error Resource id #8

Estas en el tema de Que significa el error Resource id #8 en el foro de PHP en Foros del Web. Buenas otra vez necesito de vuestra ayuda... Al ejecutar este codigo: if(!empty($row["productouno"])) { $resulttres = mysql_query("select descripcion from corporation_servicios where id='".$row["productouno"]."'"); echo '<tr><td><font size=1>'.$resulttres.'</font></td><td><font size=1>'.$row["ununo"].'</font></td><td><font ...
  #1 (permalink)  
Antiguo 17/10/2006, 15:50
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Que significa el error Resource id #8

Buenas otra vez necesito de vuestra ayuda...
Al ejecutar este codigo:

if(!empty($row["productouno"]))
{
$resulttres = mysql_query("select descripcion from corporation_servicios where id='".$row["productouno"]."'");
echo '<tr><td><font size=1>'.$resulttres.'</font></td><td><font size=1>'.$row["ununo"].'</font></td><td><font size=1>'.$row["pvpuno"].'</font></td></tr>';
mysql_free_result($resulttres);
}
else
{
echo '&nbsp;';
}

Da como resultado error Resource id #8 en vez del contenido de la variable descripcion

En resumen pide que muestre la variable descripcion de la tabla corporation_servicios cuando la id= a la columna producto uno


Gracias y perdonar las molestias.
  #2 (permalink)  
Antiguo 17/10/2006, 15:54
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
Lee las faqs, especificamente como trabajar con querys, el proceso correcto es:

Enviar un Query via mysql_query
Averiguar (si es necesario) el numero de filas con mysql_num_rows
Obtener los datos desde la base de datos ciclando con mysql_fetch_array.
  #3 (permalink)  
Antiguo 17/10/2006, 16:07
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
En cambio las variables .$row["ununo"]. y .$row["pvpuno"]. si que se muestran correctamente.

A que se debe el error? No lo entiendo?¿?¿ Esto de pensar demasiado es malo...
  #4 (permalink)  
Antiguo 17/10/2006, 16:22
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
Estimado Section1

Tu problema es que mysql_query te devuele un recurso, el cual contiene el identificador al resultado tienes que usar mysql_fetch_row para obtener los datos de ese recurso en un arreglo.
  #5 (permalink)  
Antiguo 17/10/2006, 16:34
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Gracias Gator,

Pero sigo sin entender porque me da un identificador #8 si actualmente en la tabla de donde tiene que sacar la variable descripcion solo tiene un registro.

he sustituido mysql_query por mysql_fetch_row y me da un resultado en blanco

Puedes aconsejarme mas please mis conocimientos no llegan a mas...

Saludos y gracias
  #6 (permalink)  
Antiguo 17/10/2006, 16:40
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Te doy todo el codigo por si te sirve de mas ayuda

<?
//Conexion con la base
mysql_connect("localhost","xxxxx","xxxx");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("digiocio_com_1");


//Ejecutamos la sentencia SQL
$resultuno=mysql_query("select * from corporation_facturas where id='".$id."'");
?>
<center><h4>FACTURA DETALLADA</h4></center>
<table align="center">
<tr>
<?
include("login.php");
//Mostramos los registros
while ($row=mysql_fetch_array($resultuno))
{
if(!empty($row["productouno"]))
{
$resulttres = mysql_query("select descripcion from corporation_servicios where idd='".$row["productouno"]."'");
echo '<tr><td><font size=1>'.$resulttres.'</font></td><td><font size=1>'.$row["ununo"].'</font></td><td><font size=1>'.$row["pvpuno"].'</font></td></tr>';
mysql_free_result($resulttres);
}
else
{
echo '&nbsp;';
}
}
mysql_free_result($resultuno);
?>
</table>

Última edición por Section1; 18/10/2006 a las 19:41
  #7 (permalink)  
Antiguo 17/10/2006, 19:26
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
Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","xxx","xxx") ;

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("digiocio_com_1");


//Ejecutamos la sentencia SQL
$resultuno=mysql_query("select * from corporation_facturas where id='".$id."'");
?>
<center><h4>FACTURA DETALLADA</h4></center>
<table align="center">
<tr>
<?
include("login.php");
//Mostramos los registros
while ($row=mysql_fetch_array($resultuno))
{
if(!empty(
$row["productouno"]))
{
$resulttres mysql_query("select descripcion from corporation_servicios where idd='".$row["productouno"]."'");
$descripcion mysql_fetch_array$resulttres );
echo 
'<tr><td><font size=1>'.$descripcion[0].'</font></td><td><font size=1>'.$row["ununo"].'</font></td><td><font size=1>'.$row["pvpuno"].'</font></td></tr>';
mysql_free_result($resulttres);
}
else
{
echo 
'&nbsp;';
}
}
mysql_free_result($resultuno);
?>
</table>

Última edición por GatorV; 18/10/2006 a las 21:50
  #8 (permalink)  
Antiguo 17/10/2006, 19:30
 
Fecha de Ingreso: abril-2005
Ubicación: Ciudad de México
Mensajes: 50
Antigüedad: 19 años
Puntos: 2
Identificador 8 de la Coneccion
  #9 (permalink)  
Antiguo 17/10/2006, 21:05
Avatar de dan_arg  
Fecha de Ingreso: marzo-2002
Mensajes: 110
Antigüedad: 22 años, 1 mes
Puntos: 0
A ver si te puedo aclarar esta duda...
Php trabaja internamente con estructuras de datos, una de las cuales es la estructura resource. Cuando conectamos a una base de datos, cuando utilizamos un archivo, y en otras situaciones mas, Php handlea dicho recurso con la estructura resource, independientemente de (en este caso de la query que comentaste) devuelva 0,1 o varias rows. Luego vas a tener que utilizar alguna funcion para estraer los datos, recorrerlos, etc.
Para terminar, aunque no se si esto te aclara o te empeora la duda, el #id que ves, es el indice del recurso en una tabla de hash interna de Php para los recursos.
Por ultimo, una caracteristica de los resource, es que son NO serializables.

Saludos!
  #10 (permalink)  
Antiguo 18/10/2006, 20:18
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Pequeña duda que me queda que es Handlear?¿

Gracias.
  #11 (permalink)  
Antiguo 18/10/2006, 21:48
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
Esta mal explicado pero tiene razon, handlear se refiere a que PHP identifica con el recurso #8 a ese resultado, internamente cuando quieres imprimir un resultado php manda al metodo toString de la variable, esta lo que hace es devolver ese resultado que te esta diciendo que en su tabla de recursos, el recurso #8 es la variable que tu tienes.
  #12 (permalink)  
Antiguo 18/10/2006, 22:18
Avatar de dan_arg  
Fecha de Ingreso: marzo-2002
Mensajes: 110
Antigüedad: 22 años, 1 mes
Puntos: 0
Cita:
Iniciado por Section1 Ver Mensaje
Pequeña duda que me queda que es Handlear?¿

Gracias.
Ok Amigo, perdon!
Esto pasa por leer tantas cosas en inglés, ya terminas como un gringo mas

Cuando dije que Php handlea el recurso con la estructura resource, basicamente me referia a que lo mapea, lo maneja, o quizas mejor todavia, lo "referencia" con en #id que viste en tu caso. De ninguna manera es un error, como inicialmente creias, simplemente es una cuestion de estructura retornada.
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 16:05.