Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Undefined offset

  1. #1

    Undefined offset

    Buon giorno a tutti.
    Utilizzo XAMPP per la gestione del sito.
    Avevo una vecchia versione e l'ho dovuta aggiornare.
    Il passaggio mi ha portato qualche complicanza, che man mano sto risolvendo.
    Quello che non riesco a risolvere è questo:
    Undefined offset: 2 che si riferisce a questa variabile:
    Codice PHP:
    $films['dataeora_appuntamento'][$y
    Per risolvere avevo pensato di controllare la variabile con isset(), e poi con empty()
    ma niente da fare.
    Questo controllo
    Codice PHP:
    if($hour == $films['dataeora_appuntamento'][$y]){
         
    //

    mi permette di visualizzare per ogni ora, un evento.
    Se ho due eventi uno alle 12 e l'altro alle 13, se controllo la variabile con isset() o empty(), per ogni ora, avrò due eventi.
    Quindi alle 12 avrò sia quello delle 12 che quello delle 13 e alle 13 la stessa cosa..

    Tagliando la testa al toro, ho pensato di non visualizzare più quel messaggio undefined offset, anteponendo la classica @ alla variabile incriminata risolvendo cosi il problema degli eventi doppi.
    Codice PHP:
    @$films['dataeora_appuntamento'][$y
    Domanda: anche se l'errore non lo vedo, anche se cosi funziona tutto regolarmente, la gestione però non è adeguata o sbaglio?
    Quindi come risolvo?
    Grazie e scusate la lungaggine.

  2. #2
    Che fai come gli struzzi che nascondono la testa sottoterra? Gli errori vanno corretti non nascosti!!!
    Il tuo problema è che cerchi di recuperare un elemento da un array utilizzando un indice inesistente.
    In pratica in:

    Codice PHP:
    $films['dataeora_appuntamento'][$y
    $y ad un cerpo punto assume valore 2, ma l'array contiene solamente 2 valori (0 e 1).
    Dovresti rivedere il ciclo oppure il punto in cui assegni i valori alla variabile $y.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    ti ringrazio della celere risposta
    come sempre grazie

  4. #4
    il giro dell'acqua è questo:
    Codice PHP:
    for ($i 0$i <= 23$i++) { 
        
    $hour = (strlen($i) == 1) ? '0'.$i $i;
            for (
    $y=0; ; $y++) {
        
    //echo $y;
                    
    if ($y sizeof($films['messaggio'])-1) {
                             break;
            }
            if(
    $hour == $films['dataeora_appuntamento'][$y]){//<-------- 
    adesso inserendo un nuovo record ovviamente l'offset è cambiato ora da 2 è passato a 3...
    questo giusto per la cronaca

  5. #5
    Che relazione intercorre tra $films['messaggio'] e $films['dataeora_appuntamento'] ?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    praticamente, vado a contare quanti messaggi ci sono.
    Se non ho messaggi fermo tutto.
    Codice PHP:
    if ($y sizeof($films['messaggio'])-1) { 
              break; 

    invece
    Codice PHP:
    $films['dataeora_appuntamento'
    mi restituisce le ore, nelle quali ci sono messaggi

  7. #7
    sembra che in questo modo abbia risolto:
    Codice PHP:
    for ($y=0;$y < (sizeof($films['messaggio'])-1) ; $y++) { 
    togliendo
    Codice PHP:
    if ($y sizeof($films['messaggio'])-1) {  
              break;  

    però quello che non capisco è come mai, il conteggio dei messaggi è incrementato di uno, quando sono soltanto 3 nel db?
    quindi sono costretto a toglierne uno(-1).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.