Foros del Web » Programando para Internet » PHP »

array nulo.

Estas en el tema de array nulo. en el foro de PHP en Foros del Web. como puedo comprobar que un array es nulo ??...
  #1 (permalink)  
Antiguo 17/10/2008, 03:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
array nulo.

como puedo comprobar que un array es nulo ??
  #2 (permalink)  
Antiguo 17/10/2008, 03:15
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: array nulo.

Un array no es nulo, tiene longitud 0 (esta vacio): www.php.net/count
  #3 (permalink)  
Antiguo 17/10/2008, 03:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: array nulo.

entonces lo que entiendo es que si:

Código PHP:
if (count ($array) == 0)
{
  
esta vacio
} else {
  
lo que sea

mi caso es este.

Código PHP:
if (count($_SESSION['date'][$i])==0)
{
 
error
} else {
 
resto codigo

SIEMPRE ME DEVUELVE ERROR !!
  #4 (permalink)  
Antiguo 20/10/2008, 01:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: array nulo.

por favor, una ayudita please...
  #5 (permalink)  
Antiguo 20/10/2008, 02:18
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: array nulo.

A ver si te aclaras, ¿quieres saber como ver si un array es vacio o quieres saber como ver si existe un indice en un array?
  #6 (permalink)  
Antiguo 20/10/2008, 02:22
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: array nulo.

Deberías poner el error que te da para poder tener más información.

Lo más probable es que no esté definido el array para el valor de $i.
Compruébalo haciendo:
Código PHP:
if (!isset($_SESSION['date'][$i]) || count($_SESSION['date'][$i])==0)
{
 
error
} else {
 
resto codigo

  #7 (permalink)  
Antiguo 20/10/2008, 02:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: array nulo.

CAT Shannon poniendo este codigo me pasa lo mismo, siempre sale el error.

DarkJ, lo que estoy intentando es pasar de este error, comprobando de esta manera. Para ello necesito solamente comprobar si esta vacio, pero el array va por session y tal y me estan mareando ya las sessions.


if (!isset($_SESSION['date'][$i]) || count($_SESSION['date'][$i])==0)
{
error
} else {
resto codigo
}
  #8 (permalink)  
Antiguo 20/10/2008, 03:09
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: array nulo.

Pregunta tonta, pero... la variable $i, tiene algún valor?
  #9 (permalink)  
Antiguo 20/10/2008, 03:12
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: array nulo.

El error que me da es el siguiente:
pongo esto,

Código PHP:
if (!isset($_SESSION['date'][$i]) || count($_SESSION['date'][$i])==0)
{
 echo 
"Tienes que seleccionar un dia";
 echo 
$_SESSION['date'][$i]; //SALE VACIO, NO SALE NADA, VAMOS QUE ESTA VACIO.
} else {
 
resto codigo

Resto codigo es: que selecciona varios dias en el calendario le doy a solicitar dias, los guarda en una bbdd, si quito el IF funciona perfectamente. En cuanto pongo el IF no salta a Resto codigo. SOLICITAR DIAS es un link dentro del calendario, y el if lo tengo en la pagina SOLICITAR DIAS.
  #10 (permalink)  
Antiguo 20/10/2008, 03:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: array nulo.

la variable $i, en el momento que quiero comprobar el error vale 1.
  #11 (permalink)  
Antiguo 20/10/2008, 03:50
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: array nulo.

Cuando haces la asignacion a esa variable de sesion? (cuando y como)
  #12 (permalink)  
Antiguo 20/10/2008, 04:23
 
Fecha de Ingreso: octubre-2008
Mensajes: 112
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: array nulo.

te explico. tengo 2 paginas, calendario.php, solicitar.php.
En calendario.php inicio la asignacion,

Código PHP:
++$_SESSION['cont'];
$i $_SESSION['cont'];
$_SESSION['date'][$i] = $_GET['date']; 
esto lo tengo asi ya que el calendario es un calendario anual en el cual puedes ir seleccionando cualquier dia y lo voy guardando en $_SESSION['date'][$i]

en solicitar.php tengo lo siguiente:

Código PHP:
$i $_SESSION['cont']; 
    
$_SESSION['date'][$i] = $_GET['date'];

    if (!isset(
$_SESSION['date'][$i]) || count($_SESSION['date'][$i])==0)
    {
          echo 
"No has solicitado ningun dia.";
      echo 
$_SESSION['date'][$i];
      echo 
"POSICION: ".$i;
      
//$_SESSION['fallo_vacio'] = 5;
      //header('location:calendario');
          //exit;
    
    
} else { //A PARTIR DE AQUI FUNCIONA TODO CORRECTAMENTE

        
$username=$_SESSION['username'];
        ++
$_SESSION['cont'];
        
$i $_SESSION['cont']; 
        
$_SESSION['date'][$i] = $_GET['date'];

                
//Luego inserto los dias del usuario en una bbdd etc..etc... 
  #13 (permalink)  
Antiguo 20/10/2008, 07:27
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: array nulo.

supongo que has cerciorado que $_GET['date'] tiene algun valor, verdad?
por cierto, yo creo que esto:
$_SESSION['date'][$i] = $_GET['date'];
No es un array, es decir, que es un string (o date) normal, no un array, un array seria asi:
$_SESSION['date'][$i][] = $_GET['date'];
Con lo que el count() no seria lo idoneo para comprobar que existe el valor, prueba a cambiar ese count por:
$_SESSION['date'][$i] == ''

es decir, el if te quedaria algo asi:
if (!isset($_SESSION['date'][$i]) || $_SESSION['date'][$i] == '')


espero te sea de ayuda.
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 02:07.