Visualizzazione risultati 1 fino 13 di 13

Discussione: Undefined offset: cosa significa?

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito Undefined offset: cosa significa?

    Buonasera,
    il seguente script dovrebbe estrarmi un URL casuale dal database e stamparmela a video, solo che a volte compare, al posto del sito, questa scritta:
    Notice: Undefined offset: 2 in C:\www12\scambio-visite\Ajax.php on line 21
    Cosa significa? Come posso fare in modo che non si visualizzi più?

    Codice PHP:
    $result = mysql_query("SELECT sito FROM sv_utenti WHERE id != '$id'");
    $array = array();
    while(
    $r = mysql_fetch_array($result))
    $array[] = $r[0];
    $max = mysql_query("SELECT COUNT(id) FROM sv_utenti WHERE id != '$id'")-2;
    $rand = rand(0,$max);
    echo
    $array[$rand];
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

    Predefinito

    prova così

    Codice PHP:
    $result = mysql_query("SELECT sito FROM sv_utenti WHERE id != '$id'");
    $array = array();
    while(
    $r = mysql_fetch_array($result))
    $array[] = $r[0];
    $max = mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM sv_utenti WHERE id != '$id'")-2);
    $rand = rand(0,$max[0]);
    echo
    $array[$rand];

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Mi spiace, il codice non funziona...non mi visualizza più il sito e poi mi da un errore in mysql_fetch_array()...tornando al mio codice come posso risolvere?

    EDIT: Naturalmente risolvere senza utilizzare:
    Codice PHP:
    error_reporting(0);
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Guest

    Predefinito

    Quale sarebbe la linea 21 ?

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Codice PHP:
    echo $array[$rand];
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Guest

    Predefinito

    Comunque manca un pezzo
    Codice PHP:
    $result = mysql_query("SELECT sito FROM sv_utenti WHERE id != '$id'");
    $array = array();
    while(
    $r = mysql_fetch_array($result))
    $array[] = $r[0];
    $max = mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM sv_utenti WHERE id != '$id'"));
    $rand = rand(0,$max[0]-2);
    echo
    $array[$rand];
    Prova così

  7. #7
    Guest

    Predefinito

    Undefined offset significa che quell'indice non esiste.


    Ciao!

  8. #8
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Comunque, in generale, l'errore "Undefined Offset" indica che stai riferendoti ad una chiave numerica inesistente dell'array.
    Una variante è "Undefined Index", per gli indici stringa negli array associativi.
    Ciao!
    Ultima modifica di programmazioned : 27-03-2009 alle ore 20.12.19 Motivo: Azz, preceduto e pure di un bel pò...vabbè, ho aggiunto qualcosa :)

  9. #9
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da stoner Visualizza messaggio
    Comunque manca un pezzo
    Codice PHP:
    $result = mysql_query("SELECT sito FROM sv_utenti WHERE id != '$id'");
    $array = array();
    while(
    $r = mysql_fetch_array($result))
    $array[] = $r[0];
    $max = mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM sv_utenti WHERE id != '$id'"));
    $rand = rand(0,$max[0]-2);
    echo
    $array[$rand];
    Prova così
    Adesso mi estrae sempre lo stesso sito...

    Citazione Originalmente inviato da debug Visualizza messaggio
    Undefined offset significa che quell'indice non esiste.


    Ciao!
    Scusa come mai allora questa errore compare 1 volta su 3 refresh?

    Citazione Originalmente inviato da programmazioned Visualizza messaggio
    Comunque, in generale, l'errore "Undefined Offset" indica che stai riferendoti ad una chiave numerica inesistente dell'array.
    Una variante è "Undefined Index", per gli indici stringa negli array associativi.
    Ciao!
    Strano perchè avendo mysql_query...-2 faccio in modo da avere una cosa del genere:

    Codice PHP:
    $array = array("0"=>"a","1"=>"b","2"=>"c");
    $rand = rand(0,2);
    Apprezzi l'aiuto? Offrimi un caffè!

  10. #10
    Guest

    Predefinito

    Metti srand(time()) prima di usare rand e riprova.

  11. #11
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Intendi in questo modo:
    Codice PHP:
    $result = mysql_query("SELECT sito FROM sv_utenti WHERE id != '$id'");
    $array = array();
    while(
    $r = mysql_fetch_array($result))
    $array[] = $r[0];
    $max = mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM sv_utenti WHERE id != '$id'"));
    srand(time());
    $rand = rand(0,$max[0]-2);
    echo
    $array[$rand];
    (Stesso risultato di prima, sempre lo stesso sito)
    Apprezzi l'aiuto? Offrimi un caffè!

  12. #12
    Guest

    Predefinito

    scusa il -2 che prima avevi messo su mysql_query (che io ho spostato al valore del count) a che serve?
    Comunque modifico un pò il codice perchè così è ridondante
    Codice PHP:
    $result = mysql_query("SELECT sito FROM sv_utenti WHERE id != '$id'");
    $array = array();
    while(
    $r = mysql_fetch_array($result))
    $array[] = $r[0];

    srand(time());
    $rand = rand(0,count($array)-1); //con o senza il -2 (non ho capito a che serve) (in realtà in questo caso dovrebbe essere -1)
    echo $array[$rand];

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Adesso funge perfettamente comunque quando eseguivo questa query:
    Codice PHP:
    mysql_query("SELECT COUNT(id) FROM sv_utenti WHERE id != '$id'");
    Mi veniva stampato Resource id #4 mentre le righe in MySQL erano 3 quindi -1 e mi stampava 3 ma dato che WHERE id != '$id'" sembrava non funzionare ho messo -2 così da eliminare da risultare 2 (attualmente).

    Beh ti ringrazio...ancora una volta mi sei stato molto utile.
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •