Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/06/2004, 08:00
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El problema no es con sesiones .. sino con la consulta SQL que haces y como obtienes sus resultados ..

Las funciones mysql_fetch_xxx() de PHP hacen lo siguiente:
"Obtienen un resultado de tu consulta (registro) y mueven el puntero a la siguiente posición".

Si tu haces un "if()" pero asignando $row par "psudo-comprobar" que el resultado de tu consulta se ejecutó.. ya estás "moviendo" el puntero del resultado a la siguiente posición de resultados .. Y, supongo que por el tipo de consulta y datos que són sólo obtendras un resultado o cero resultados de tu SQL ..

Si quieres hacerlo como lo estabas implementado tendrias que usar:

Código PHP:
if ($row =mysql_fetch_array ($res)){   
// Si hay datos 
list ($act,$fecha,$nombre,$texto) = $row
}else{ 
//no hay datos 
echo "error al buscar el anuncio"
exit; 

echo 
"$nombre"//no sale 
echo "$id"// si sale 
Pero yo haría:

Código PHP:
if (mysql_num_rows($res) == 1){
   
// Si hay datos 
   
list ($act,$fecha,$nombre,$texto) = mysql_fetch_array ($res);
}else{ 
   
//no hay datos 
   
echo "error al buscar el anuncio"
   exit; 

Y mejor todavía para evitar problemas con los nombres/orden de los campos que use en el SQL empleado:

Código PHP:
if (mysql_num_rows($res) == 1){
   
// Si hay datos 
    
$row=mysql_array_array ($res);
    echo 
$row['nombre'];
    echo 
$row['otro_campo'];
}else{ 
   
//no hay datos 
   
echo "error al buscar el anuncio"
   exit; 

La función myslq_num_rows() Cuenta el total de registros que arrojó tu consulta SQL (record-set) .. así que me baso en ese resultado para saber si hay registros (uno es lo que espero si esos ID son únicos) o no que mostrar mas que en que si la función arrojó o no un error al ejecutarse.

Un saludo,

Última edición por Cluster; 24/06/2004 a las 08:02