Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Notice: Undefined index

    Scusate per il titolo ma non sapevo proprio cosa scrivere

    Ho uno script del quale vi mostro una parte che mi da questo errore

    Notice: Undefined index: cat in C:\siti\salario\prova2.php on line 46

    Anche se poi lo script funziona.

    Codice PHP:
    echo "<div id=categoria>";
    echo 
    "<form name=\"form\" method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">         
                     <select name=\"categoria\" onchange=\"window.location=('
    {$_SERVER['PHP_SELF']}?cat='+this.options[this.selectedIndex].value)\">
            <option value=\"c\">Scegli</option>\n"
    ;
        
    $st=mysql_query("SELECT CAT FROM retribuzione ORDER BY CAT") or die(mysql_error());
        while (
    $row=mysql_fetch_assoc($st))
            echo 
    "<option value=\"{$row['CAT']}\">{$row['CAT']}</option>\n";
        echo 
    "</select>
         </form>\n"
    ;
    echo 
    "</div>";
    //QUESTA E' LA LINEA 46
         
    $sql="SELECT * FROM retribuzione WHERE CAT ='{$_GET['cat']}'";
        
    $result=mysql_query($sql) or die(mysql_error());
        while (
    $row=mysql_fetch_assoc($result)){
    include (
    "prova.php");
    echo 
    "<div id=cerca>";
    echo 
    "Categoria ".$row[CAT]; 
    Qualcuno sa dirmi dove sbaglio

  2. #2
    semplicemente non gli stai passando via $_GET il valore di 'cat'
    Lo script necessita un link del tipo mioscript.php?cat=nomecategoria

  3. #3
    ti dispiacerebbe spiegarmelo meglio.
    Il valore cat viene preso dalla form che a sua volta lo tira fuori dal db

  4. #4
    ok...
    la query
    SELECT * FROM retribuzione WHERE CAT ='{$_GET['cat']}
    prende la categoria dall'array $_GET. Cosa significa? Significa che questo valore viene recuperato dalla query string, ovvero la stringa di parametri che segue il nome dello script nell'URL.
    Ad esepmio, se dal browser scrivi:
    http://miosito/mioscript.php?var1=12&var2=74
    nello script avrai che $_GET['var1'] = 12 e $_GET['var2'] = 74
    Quindi il tuo script per funzionare correttamente deve essere chiamato dal browser aggiungendo in coda al suo nome la corretta query string, tipo mioscript.php?cat=nomecategoria altrimenti quando prepari la query per il db riceverai un errore perché $_GET['cat'] non è definita (non hai passato il valore di 'cat').
    Spero di essere stato chiaro.

  5. #5
    Vediamo se riesco ad essere più chiaro.
    Si apre la pagina con un campo select che prende i dati dal DB (A1, A2, A3 ecc.)
    Una volta effettuata la scelta mi visualizza i dati estrapolati dal DB.
    L'errore si presenta appena viasualizzata la pagina.
    Dopo aver effettuato la scelta il tutto funziona bene.

  6. #6
    non mi è tutto chiaro, forse è meglio che posti tutto lo scipt.

  7. #7
    eccolo:
    Codice PHP:
    echo "<div id=categoria>";
    echo 
    "<form name=\"form\" method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">         
                     <select name=\"categoria\" onchange=\"window.location=('
    {$_SERVER['PHP_SELF']}?cat='+this.options[this.selectedIndex].value)\">
            <option value=\"c\">Scegli</option>\n"
    ;
        
    $st=mysql_query("SELECT CAT FROM retribuzione ORDER BY CAT") or die(mysql_error());
        while (
    $row=mysql_fetch_assoc($st))
            echo 
    "<option value=\"{$row['CAT']}\">{$row['CAT']}</option>\n";
        echo 
    "</select>
         </form>\n"
    ;
    echo 
    "</div>";
         
    $sql="SELECT * FROM retribuzione WHERE CAT ='{$_GET['cat']}'";
        
    $result=mysql_query($sql) or die(mysql_error());
        while (
    $row=mysql_fetch_assoc($result)){
    include (
    "prova.php");
    echo 
    "<div id=cerca>";
    echo 
    "Categoria ".$row['CAT'];
    echo 
    "</div>";
            echo 
    "<div id=collSX>";
            echo 
    "<div id=labelretS>"."Retribuzione base"."</div>"."<div id=datiretS>".$ret_base."</div>".
            
    "<div id=labelretS>"."Retribuzione Mensile"."</div>"."<div id=datiretS>".$ret_mens."</div>".
            
    "<div id=labelretS>"."Indennità di Comparto"."</div>"."<div id=datiretS>".$ind_comp."</div>".
            
    "<div id=labelretS>"."Retribuzione Oraria"."</div>"."<div id=datiretS>".$ret_ora."</div>";
            echo 
    "</div>";
            echo 
    "<div id=collDX>";
            echo 
    "<div id=labelretD>"."Differenza I.I.S."."</div>"."<div id=datiretD>".$diff_iis."</div>".
            
    "<div id=labelretD>"."Indennità di Vigilanza"."</div>"."<div id=datiretD>".$ind_vigil."</div>".
            
    "<div id=labelretD>"."Retr. + Ind. Comp."."</div>"."<div id=datiretD>"$ret_mensIC."</div>".
            
    "<div id=labelretD>"."Retribuzione Giornaliera"."</div>"."<div id=datiretD>"$ret_giorn."</div>";
            echo 
    "</div>";
    }
    ?> 

  8. #8

    Re: Notice: Undefined index

    Originariamente inviato da micio1980
    Anche se poi lo script funziona.
    Qualcuno sa dirmi dove sbaglio
    Il php si lamenta finche' trova nel codice un riferimento ad una variabile nulla. Appena la variabile non e' piu' nulla (perche' ad es. la passi da querystring) smette di visualizzare l'errore in oggetto. Credo ci possano essere vari modi per evitare l'errore. Uno potrebbe essere quello di sostiuire con qualcosa di simile
    codice:
    if (isset($_GET['cat'])) { echo $_GET['cat'] } else { echo '...' }
    il riferimento a $_GET['cat'] che ti provoca errore.
    Saluti a tutti
    Riccardo

  9. #9
    La prima volta che lanci lo script devi evitare che faccia la query per visualizzare i dati della categoria selezionata, infatti non è stato selezionato ancora nulla e quindi non esiste la variabile $_GET['cat']. Ecco perchè ricevi quell'errore.
    Quindi prima della seconda select metti:
    codice:
    if (isset($_GET['cat']))
    {
      $sql="SELECT * FROM retribuzione WHERE CAT ='{$_GET['cat']}'";
       ...
    e chiudi lo script così (nota la seconda graffa):
    codice:
      echo "</div>";
      }
    }

  10. #10
    Ciao Gianni,
    sono rientrato da poco, ho provato e funziona.
    GRAZIE

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.