Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Notice

  1. #1

    Notice

    Ho scritto il seguente codice ma mi da un errore di notice qualcuno può verificare il perchè non riesco a capire il motivo
    codice:
     	<?php
    			include ('condb2.php');
    	        include ('condb.php');
    			
         
        $n=$_GET['val'];
    	 switch ($n)
         { 
      case 1:
    	{
          $sql = "SELECT comuni.descrizione\n"
                 . "from comuni\n"
                 . "where comuni.nome_comune=\"ischia\"";
        	     $ris=mysql_query($sql,$mysql);
                 if (!$ris)
                    {
                      echo "DB ERRORE, QUERY NON CONNESSA AL DATABASE\N";
                      echo 'MYSQL Error:'.mysql_error();
                      exit;
                    }
                     while($row=mysql_fetch_assoc($ris))
                    {
                       ?>  <?php echo $row['descrizione'];?>   <?php
    
                    }
        }
         break;
    		 
        case 2:
    	{
            $sql = "SELECT comuni.descrizione\n"
                 . "from comuni\n"
                 . "where comuni.nome_comune=\"casamicciola terme\"";
        	      $ris=mysql_query($sql,$mysql);
                  if (!$ris)
                   {
                     echo "DB ERRORE, QUERY NON CONNESSA AL DATABASE\N";
                     echo 'MYSQL Error:'.mysql_error();
                     exit;
                   }
                     while($row=mysql_fetch_assoc($ris))
                     {
                      ?>  <?php echo $row['descrizione'];?>  <?php
                     }
        }
    	    break;
    	case 3:
    	{
            $sql = "SELECT comuni.descrizione\n"
                   . "from comuni\n"
                   . "where comuni.nome_comune=\"lacco ameno\"";
        	      $ris=mysql_query($sql,$mysql);
                  if (!$ris)
                   {
                     echo "DB ERRORE, QUERY NON CONNESSA AL DATABASE\N";
                     echo 'MYSQL Error:'.mysql_error();
                     exit;
                   }
                     while($row=mysql_fetch_assoc($ris))
                     {
                      ?>  <?php echo $row['descrizione'];?>   <?php
                     }
        }
    	   break;
    	case 4:
    	{
            $sql = "SELECT comuni.descrizione\n"
                   . "from comuni\n"
                   . "where comuni.nome_comune=\"forio\"";
        	      $ris=mysql_query($sql,$mysql);
                  if (!$ris)
                   {
                     echo "DB ERRORE, QUERY NON CONNESSA AL DATABASE\N";
                     echo 'MYSQL Error:'.mysql_error();
                     exit;
                   }
                     while($row=mysql_fetch_assoc($ris))
                     {
                      ?>  <?php echo $row['descrizione'];?>   <?php
                     }
        }
    	   break;
    	case 5:
    	{
            $sql = "SELECT comuni.descrizione\n"
                   . "from comuni\n"
                   . "where comuni.nome_comune=\"serrara fontana\"";
        	      $ris=mysql_query($sql,$mysql);
                  if (!$ris)
                   {
                     echo "DB ERRORE, QUERY NON CONNESSA AL DATABASE\N";
                     echo 'MYSQL Error:'.mysql_error();
                     exit;
                   }
                     while($row=mysql_fetch_assoc($ris))
                     {
                      ?> <?php echo $row['descrizione'];?> <?php
                     }
        }
    	case 6:
    	{
            $sql = "SELECT comuni.descrizione\n"
                   . "from comuni\n"
                   . "where comuni.nome_comune=\"Barano\"";
        	      $ris=mysql_query($sql,$mysql);
                  if (!$ris)
                   {
                     echo "DB ERRORE, QUERY NON CONNESSA AL DATABASE\N";
                     echo 'MYSQL Error:'.mysql_error();
                     exit;
                   }
                     while($row=mysql_fetch_assoc($ris))
                     {
                      ?>  <?php echo $row['descrizione'];?>  <?php
                     }
        }
    	break;
     }
    		 
      ?>
    Vi ringrazio infinitamente

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Un errore di notice?
    Puoi riportare il testo esatto dell'errore?

  3. #3
    ok l'errore è il seguente:Avviso : Undefined index: val in C: \ Programmi \ EasyPHP 3.0 \ www \ ischiapoint \ comuni.php on line 91

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prova a mettere un
    echo $_GET['val'];
    e vedi cosa stampa, probabilmente arriva un valore non contemplato dallo switch.

  5. #5
    Avevo già provato a verificare cosa ci sia nella $n ma mi da sempre lo stesso errore senza farmi vedere nulla e poi come mi hai consigliato tu ma mi porta sempre lo stesso errore e non mi fa vedere cosa ci sia dentro la variabile!!!cosa posso provare a fare???? grazie mille

  6. #6
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    dopo l'ultimo break; aggiungi

    Codice PHP:
    break; //ultimo break - aggiungi quello di seguito
    default:
    echo 
    $_GET['val'];
    break; 
    e vediamo cosa ti stampa
    eXvision

  7. #7
    mi da lo stesso errore sul ultima riga

  8. #8
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    allora:

    1- non servono le graffe dopo i case;
    2- non scrivere le query con i vari \n ecc.;
    3- scrivi la sintassi dell'sql in MAIUSCOLO;
    4- perchè chiudi in continuazione e riapri i tag php?;
    5- scrivi un po' ordinatamente;

    ecco il codice leggibile
    Codice PHP:
     <?php
     
    include "condb2.php";
    include 
    "condb.php";
            
    $n $_GET['val'];

    switch(
    $n){ 
        case 
    1:
            
    $sql "SELECT comuni.descrizione FROM comuni WHERE comuni.nome_comune='ischia'";
                
    $ris mysql_query($sql$mysql);
                if (!
    $ris){
                    echo 
    "DB ERRORE, QUERY NON CONNESSA AL DATABASE\n";
                    echo 
    "MYSQL Error:".mysql_error();
                    exit;
                }
                while(
    $row=mysql_fetch_assoc($ris)){
                    echo 
    $row['descrizione'];
                }
        break;
        case 
    2:
            
    $sql "SELECT comuni.descrizione FROM comuni WHERE comuni.nome_comune='casamicciola terme'";
                
    $ris mysql_query($sql$mysql);
                if (!
    $ris){
                    echo 
    "DB ERRORE, QUERY NON CONNESSA AL DATABASE\n";
                    echo 
    "MYSQL Error:".mysql_error();
                    exit;
                }
                while(
    $row=mysql_fetch_assoc($ris)){
                    echo 
    $row['descrizione'];
                }
        break;
        case 
    3:
            
    $sql "SELECT comuni.descrizione FROM comuni WHERE comuni.nome_comune='lacco ameno'";
                
    $ris mysql_query($sql$mysql);
                if (!
    $ris){
                    echo 
    "DB ERRORE, QUERY NON CONNESSA AL DATABASE\n";
                    echo 
    "MYSQL Error:".mysql_error();
                    exit;
                }
                while(
    $row=mysql_fetch_assoc($ris)){
                    echo 
    $row['descrizione'];
                }
        break;
        case 
    4:
            
    $sql "SELECT comuni.descrizione FROM comuni WHERE comuni.nome_comune='forio'";
                
    $ris mysql_query($sql$mysql);
                if (!
    $ris){
                    echo 
    "DB ERRORE, QUERY NON CONNESSA AL DATABASE\n";
                    echo 
    "MYSQL Error:".mysql_error();
                    exit;
                }
                while(
    $row=mysql_fetch_assoc($ris)){
                    echo 
    $row['descrizione'];
                }
        break;
        case 
    5:
            
    $sql "SELECT comuni.descrizione FROM comuni WHERE comuni.nome_comune='serrara fontana'";
                
    $ris mysql_query($sql$mysql);
                if (!
    $ris){
                    echo 
    "DB ERRORE, QUERY NON CONNESSA AL DATABASE\n";
                    echo 
    "MYSQL Error:".mysql_error();
                    exit;
                }
                while(
    $row=mysql_fetch_assoc($ris)){
                    echo 
    $row['descrizione'];
                }
        break;
        case 
    6:
            
    $sql "SELECT comuni.descrizione FROM comuni WHERE comuni.nome_comune='Barano'";
                
    $ris mysql_query($sql$mysql);
                if (!
    $ris){
                    echo 
    "DB ERRORE, QUERY NON CONNESSA AL DATABASE\n";
                    echo 
    "MYSQL Error:".mysql_error();
                    exit;
                }
                while(
    $row=mysql_fetch_assoc($ris)){
                    echo 
    $row['descrizione'];
                }
        break;

     }

    ?>
    ora ottimizziamo un po' questo codice in modo da togliere le righe inutili:

    Codice PHP:
     <?php
     
    include "condb2.php";
    include 
    "condb.php";
            
    $n $_GET['val'];

    switch(
    $n){ 
        case 
    1:
            
    $selected "ischia";
        break;
        case 
    2:
            
    $selected "casamicciola terme";
        break;
        case 
    3:
            
    $selected "lacco ameno";
        break;
        case 
    4:
            
    $selected "forio";
        break;
        case 
    5:
            
    $selected "serrara fontana";
        break;
        case 
    6:
            
    $selected "Barano";
        break;
        default:
            echo 
    "Selezione effettuata non disponibile.";
            exit;
        break;

     }
     
    $sql "SELECT comuni.descrizione FROM comuni WHERE comuni.nome_comune='$selected'";
    $ris mysql_query($sql$mysql);
    if (!
    $ris){
        echo 
    "DB ERRORE, QUERY NON CONNESSA AL DATABASE\n";
        echo 
    "MYSQL Error:".mysql_error();
        exit;
    }
    while(
    $row mysql_fetch_assoc($ris)){
        echo 
    $row['descrizione'];
    }

    ?>
    da 88 a 44 righe di codice utilizzate
    eXvision

  9. #9
    quando utilizzi una variabile di cui non è certa l'esistenza perchè, come in questo caso, è settata (indirettamente) dall'utente devi trattarla in modo idoneo prevedendo:
    1) la mancata esistenza;
    2) esistenza di un valore diverso rispetto a quello "atteso".

    Nel caso di specie la variabile $_GET['val'] è/può essere settata (indirettamente) dall'utente ma lo script si "attende" di ricevere un numero intero compreso fra 1 e 6.

    Ergo:
    Codice PHP:
    // se essite $_GET['val'] -> lo "converto" in intero
    // se non essite lo imposto a 0 (zero)

    $n = isset($_GET["val"]) ? intval(stripslashes($_GET["val"])) : 0

  10. #10
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    quando utilizzi una variabile di cui non è certa l'esistenza perchè, come in questo caso, è settata (indirettamente) dall'utente devi trattarla in modo idoneo prevedendo:
    1) la mancata esistenza;
    2) esistenza di un valore diverso rispetto a quello "atteso".
    Ben detto Oly

    Questo codice fa le stesse cose di quello originale... se non altro in meno righe ed anche se non mi piace per niente
    Codice PHP:
    <?php
    include ('condb2.php');
    include (
    'condb.php');

    $comuni = array(=> 'ischia''casamicciola terme''lacco ameno''forio''serrara fontana''Barano');
    if (isset(
    $_GET['val']) and ($k=intval($_GET['val']) > and $k <= count($comuni))) {
        
    $sql "SELECT comuni.descrizione
                    from comuni
                    where comuni.nome_comune='
    {$comuni[$k]}'";
        
    $ris mysql_query($sql$mysql) or die('DB ERRORE, QUERY NON CONNESSA AL DATABASE\nMYSQL Error:' mysql_error());
        while (
    $row mysql_fetch_assoc($ris))
            echo 
    $row['descrizione'];
    }else
        die(
    '$_GET[val] non è settata o è fuori range');
    ?>
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

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.