Foros del Web » Programando para Internet » PHP »

Problema con cadena vacia en un array

Estas en el tema de Problema con cadena vacia en un array en el foro de PHP en Foros del Web. Tengo este código que veis aquí abajo el cual hace consultas a una BD para obtener eventos y ordenados por meses, los meses que no ...
  #1 (permalink)  
Antiguo 15/02/2009, 09:57
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Problema con cadena vacia en un array

Tengo este código que veis aquí abajo el cual hace consultas a una BD para obtener eventos y ordenados por meses, los meses que no hay eventos debería de mostrar solo la frase "No hay eventos añadidos" sin embargo no muestra nada.

Por ejemplo si tengo 1 evento en Enero, otro en Septiembre y por ultimo otro en Octubre lo que hace el código es mostrarlo así:

Enero
1 evento

Febrero
Marzo
Abril
Mayo
Junio
Julio
Agosto
Septiembre
1 evento

Octubre
1evento

Noviembre
Diciembre

A continuación el codigo con explicaciones de que hace.

Código PHP:
for($i=0;$i<=12;$i++){
    
  
$mesConsultaMes($i); //Consulta el nombre del mes cuyo id es $i
    
   
echo 'Mes'//Muestra el mes
    
    
$eventos ConsultaEventos($i); // Consulta los eventos del mes $i


        
if (empty($eventos)) { // Si $eventos esta vacio es que no hay eventos y por lo tanto muesro el aviso
            
echo 'No hay eventos añadidos.';
        }else{ 
// Si no muestro el evento
    
            
while($contenido mysql_fetch_assoc($eventos)) {      
                echo 
'Evento';                                    
            }        
        }        
    } 

Última edición por Aimarejada; 21/02/2009 a las 09:53
  #2 (permalink)  
Antiguo 15/02/2009, 11:46
 
Fecha de Ingreso: abril-2008
Ubicación: Aquí y Allá
Mensajes: 88
Antigüedad: 16 años
Puntos: 3
Respuesta: Problema con cadena vacia en un array

Hola, Aimarejada

Podrias mostrar el código de la funcion ConcultaEventos($i)?

Un salu2,
__________________
Nadie es perfecto: los errores de los cocineros se tapan con mayonesa, los errores de los albañiles se tapan con cemento y los errores de los medicos se tapan con tierra.
  #3 (permalink)  
Antiguo 15/02/2009, 12:00
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema con cadena vacia en un array

Esta es la función pero yo creo que no es cosa de las funciones sino del otro codigo que he puesto.

Código PHP:
    function ConsultaEventos($id){
        
$con=mysql_query("SELECT datos eventos FROM eventos WHERE mes = '".$id."'");
        return 
$con;
    } 
  #4 (permalink)  
Antiguo 21/02/2009, 08:05
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema con cadena vacia en un array

¿Alguien tiene alguna idea de que puede ser?
  #5 (permalink)  
Antiguo 21/02/2009, 09:20
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Problema con cadena vacia en un array

Cita:
$eventos = ConcultaEventos($i);
¿No es ConsultaEventos?
  #6 (permalink)  
Antiguo 21/02/2009, 09:52
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema con cadena vacia en un array

Quería poner "ConsultaEventos" pero sin querer puse "ConcultaEventos", gracias por la apreciación ahora edito el mensaje.
  #7 (permalink)  
Antiguo 21/02/2009, 17:17
 
Fecha de Ingreso: abril-2008
Ubicación: Aquí y Allá
Mensajes: 88
Antigüedad: 16 años
Puntos: 3
Respuesta: Problema con cadena vacia en un array

Hola, Aimarejada

Lo que te devuelve la funcion ConsultaEventos es un resource, por eso la variable $eventos nunca esta vacía.

Creo que te vendria mejor usar una condicion como:

Código PHP:
if(mysql_num_rows($eventos)==0): 
     echo 
"No hay eventos"
else: 
     
// El codigo para cuando hay eventos
endif; 
Saludos
__________________
Nadie es perfecto: los errores de los cocineros se tapan con mayonesa, los errores de los albañiles se tapan con cemento y los errores de los medicos se tapan con tierra.
  #8 (permalink)  
Antiguo 22/02/2009, 07:07
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema con cadena vacia en un array

Si ha solucionado el problema y ya me muestra lo que queria.

Gracias
  #9 (permalink)  
Antiguo 22/02/2009, 08:12
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problema con cadena vacia en un array

Cita:
for($i=0;$i<=12;$i++){
el año tiene 12 meses, no 13 xDDD

o pones:
Código:
 for($i=0;$i<12;$i++)
o
Código:
for($i=1;$i<=12;$i++)
depende de tu función de consulta de mes

salu2
  #10 (permalink)  
Antiguo 22/02/2009, 08:44
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Problema con cadena vacia en un array

Se cuantos meses tiene un año y solo se debe un error al hacer el ejemplo de como tengo montado el codigo, gracias.
  #11 (permalink)  
Antiguo 24/02/2009, 16:56
 
Fecha de Ingreso: abril-2008
Ubicación: Aquí y Allá
Mensajes: 88
Antigüedad: 16 años
Puntos: 3
Mensaje Respuesta: Problema con cadena vacia en un array

Hola, Aimarejada, me alegro de haberte podido ayudar

Queria darte 2 pequeños consejos:

1. Prueba las sentencias SQL, por ejemplo, con el phpmyadmin, para saber si la sentencia es correcta y en caso de que no lo sea, saber que error se produjo.

2. Has echo de tus variables: el error que tenias lo hubieses detectado de esa forma, es decir, si hubieses hecho:
Código PHP:
echo $eventos
te hubieses dado cuenta de que esa variable nunca estaba vacía.

Espero que esto te sea de ayuda en un futuro,

Un salu2
__________________
Nadie es perfecto: los errores de los cocineros se tapan con mayonesa, los errores de los albañiles se tapan con cemento y los errores de los medicos se tapan con tierra.
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 06:32.