Foros del Web » Programando para Internet » PHP »

Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line 76

Estas en el tema de Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line 76 en el foro de PHP en Foros del Web. Hola compañeros(as) desde ya agradesco cualquier ayuda sugerencia o critica. Bueno les comento que estoy tratanto de hacer un calendario de eventos con php, el ...
  #1 (permalink)  
Antiguo 19/02/2010, 12:59
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 8 meses
Puntos: 0
Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line 76

Hola compañeros(as) desde ya agradesco cualquier ayuda sugerencia o critica.

Bueno les comento que estoy tratanto de hacer un calendario de eventos con php, el tema que los eventos ya estan guardados en la base de datos y cuando genero el calendario y muesto los eventos me arroja el error que indico en el titulo del post.

Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line 76

Notice: Undefined offset: 28 in C:\wamp\www\portal\calendario.php on line 76


les dejo parte del codigo.

Código PHP:
$events = array();

$query="SELECT DATE_FORMAT(eventDate,'%d') AS day,eventContent,eventTitle FROM eventcal WHERE eventDate BETWEEN  '$current_year/$current_month/01' AND '$current_year/$current_month/$total_days_of_current_month'";

$objBD->consultar($query);
while(
$row_event $objBD->obtendatos()){
    
$events[intval($row_event['day'])] .= '<li><span class="title">'.stripslashes($row_event['eventTitle']).'</span><span class="desc">'.stripslashes($row_event['eventContent']).'</span></li>';

La linea 76 es esta:
$events[intval($row_event['day'])] .= '<li><span.....


Bueno cualquier ayuda se los agradecere enormemente.

Desde ya nuevamente gracias y saludos desde CHILE.
  #2 (permalink)  
Antiguo 19/02/2010, 13:07
(Desactivado)
 
Fecha de Ingreso: febrero-2010
Mensajes: 42
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line

en la linea 26 y 28 no estas definiendo una variable,
  #3 (permalink)  
Antiguo 19/02/2010, 13:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line

No es un error precisamente, te está advirtiendo de que estás usando un índice del array sin declarar.

Podrías usar:
Código PHP:
Ver original
  1. if (!isset($events[intval($row_event['day'])])) {
  2.     $events[intval($row_event['day'])] = '';
  3. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 19/02/2010, 15:41
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line

cacal, David gracias por sus comentarios.

Tomando en cuenta el comentario de David que no estoy declarando el índice del array no entiendo la idea... haces un if ocupas la funcion isset para ver si esta declarado si es que no me equivoco y si no esta declarado le asignas blanco.....esta bien lo que digo?

Ahora les comento que el codigo donde me arroja el error no es mio lo encontre en una pagina lo modifico a mi medida y me cuesta entenderlo sobre todo esto ( .= )
stripslashes : esto e spara tratamiento de cadenas pero nose que realmente hace.

En pocas palabras no me logro imaginar como quedaria el arreglo $events.

Podrian ayudarme a entender esas lineas para seguir avanzando o tratar de desglozarlas separarlas

por ejemplo:
Código PHP:

$events
[intval($row_event['day'])] .= '<li>
   <span class="title">'
.stripslashes($row_event['eventTitle']).'</span>
   <span class="desc">'
.stripslashes($row_event['eventContent']).'</span>
</li>'

estra corrcto asi...si estuviera correcto me ayudarian a entender esta parte:
....($row_event['day'])] .= '<li>

y eso del ... '.stripslashes($row....

Bueno espero no molestarlos mucho pero creo que al entender esto se me hara mas facil continuar ....

Gracias nuevamente.
  #5 (permalink)  
Antiguo 19/02/2010, 17:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line

stripslashes es para quitar caracteres escapados con la contrabarra.
Véase: http://www.php.net/stripslashes

La línea que te indiqué sencillamente asigna un valor inicial al índice del array al que necesitas referirte. ".=" es el operador de concatenación (concatena a la variable el valor de la derecha), por eso te advierte cuando intentas utilizarlo con una variable no inicializada.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 19/02/2010, 19:09
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line

David entiendo tu explicacion ...pero no se me ocurre la solucion, no se como podria solucionar esto de que forma ... tu me diste un ejemplo con un if de como hacerlo.
Trato de hilar mis ideas y se me ocurre esto....en el momento.

Código PHP:
if (!isset($events[intval($row_event['day'])])) {
    
$events[intval($row_event['day'])] = '';
}
else{
    while(
$row_event $objBD->obtendatos()){ 
           
$events[intval($row_event['day'])] .= '<li>
           <span class="title">'
.stripslashes($row_event['eventTitle']).'</span>
           <span class="desc">'
.stripslashes($row_event['eventContent']).'</span>
</li>'
;  

    }
}

Algo asi podria ser?

Gracias David por tu buena voluntad y paciencia.

Saludos desde CHILE
  #7 (permalink)  
Antiguo 19/02/2010, 19:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line

No, ese if nunca se va a cumplir, sencillamente hazlo al momento de usar la variable:
Código PHP:
Ver original
  1. while (...) {
  2.     if (!isset($variable)) {
  3.         $variable = '';
  4.     }
  5.     $variable .= ...;
  6. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 20/02/2010, 20:41
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Notice: Undefined offset: 20 in C:\wamp\www\portal\calendario.php on line

Hola David te comento que funciono ya no me arroja esos mensajes, te agradesco tu ayuda, voluntad y paciencia sin tus consejos y comentarios no podria haber solucionado esto.
Dejo el codigo por si a alguien le sirve y ademas para que David vea si es el correcto o el mas apropiado....NUEVAMENTE GRACIAS DAVID.

Código PHP:
$objBD->consultar($query);
while(
$row_event $objBD->obtendatos()){
    if (!isset(
$events[intval($row_event['day'])])) {
        
//$events = '';
        
$events[intval($row_event['day'])] = ''
    }else{
        
$events[intval($row_event['day'])] .= '<li>
           <span class="title">'
.stripslashes($row_event['eventTitle']).'</span>
           <span class="desc">'
.stripslashes($row_event['eventContent']).'</span>
        </li>'
;
    }

Eso...seria.

Etiquetas: line, offset, undefined
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:43.