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

    INSERT se la variabile non esiste

    Ciao a tutti, tramite form devo inserire articoli in un catalogo.
    Se qualche voce non viene compilata la relativa variabile non viene valorizzata e l' INSERT mi restituisce l'errore:


    Notice: Undefined variable: ******** in H:\xampp\htdocs\prove\offerte_upload_2.php on line 89

    ​C'è un metodo per non avere errori anche se non tutte le variabili sono valorizzate ?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Sì, le variabili le inizializzi comunque, ma con un valore di default, che potrebbe essere 0, NULL, una stringa vuota... a seconda del tipo di dato previsto per la relativa variabile.

  3. #3
    Come faccio ad inizializzarle con il valore NULL se non viene 'postato' un altro valore ?

  4. #4
    Codice PHP:
    <?php    include("chiave.php");    include ("dati.php");    include("class_resize.php");    
        
    $id_offerte_articoli$_POST['id_offerte_articoli'];    $codice$_POST['codice'];        $prezzo$_POST['prezzo'];        $nome_articolo$_POST['nome'];    $nome HtmlEntities($nome_articoloENT_QUOTES"UTF-8");        $stato$_POST['stato'];        $descrizione_articolo$_POST['descrizione'];    $desc HtmlEntities($descrizione_articoloENT_QUOTES"UTF-8");        
            
    $dbcnx mysql_connect("$host""$user_db""$pass_db");mysql_select_db("$nome_db"$dbcnx);
    $res mysql_query("SELECT * FROM offerte_articoli WHERE codice_articolo = '$codice'");$num mysql_num_rows ($res);
    mysql_close($dbcnx);
    if(
    $num 0) {exit ('<P>CODICE ARTICOLO NON VALIDO PERCHE\' GIA\' PRESENTE NEL DATABASE</P>');}
    else {

    $dbcnx mysql_connect("$host""$user_db""$pass_db");mysql_select_db("$nome_db"$dbcnx);                
      if (
    is_uploaded_file($_FILES['image']['tmp_name'])) {       // Verifico che sul sul server non esista già un file con lo stesso nome    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora    if (file_exists('public/upload/'.$_FILES['image']['name'])) {      $msg = "<p>File gi&agrave; esistente nel database</p>";      break;    }            // Trova l'estensione del file    $estensione=strrchr($_FILES["image"]["name"],'.');
        // Eventuale nuovo nome da dare al file uploadato    $immagine = $codice.$estensione;        $upload_dir = 'public/upload/';

        // Sposto il file nella cartella da me desiderata    if (!move_uploaded_file($_FILES['image']['tmp_name'], "$upload_dir/$immagine")) {      $msg = "<p>Si &egrave; verificato un errore nel caricamento.</p>";      break;    }    
    $resize = new resize;$resize->urlimage "public/upload/$immagine";$resize->fisso 0;$resize->maxX 400;$resize->maxY 400;$resize->latofisso "XY";$resize->folder "offerte_articoli/immagini/";$resize->newName "$immagine";$resize->go();


        



    }


                
    $query "insert into offerte_articoli (id_offerte_articoli, codice_articolo, prezzo, nome_articolo, descrizione_articolo, stato, nome_file)    values ('$id_offerte_articoli', '$codice', '$prezzo', '$nome', '$desc', '$stato', '$immagine')";    mysql_query($query)or die(mysql_error());        
    mysql_close($dbcnx);

    }



    include (
    "indice.php");
    ?>
    Questo è il codice, se inserisco un articolo senza la relativa immagine mi da l'errore sulla variabile $immagine nella query INSERT.
    Come potrei fare ?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Prima di tutto ti chiedo un favore: la prossima volta che posti del codice, prima di inviare la discussione, visualizzane l'anteprima ed assicurati che sia ben formattato ed indentato, così com'è non si capiva niente, ho dovuto metterlo su un editor e sistemarlo.

    Veniamo al problema.
    Subito dentro l'else potresti mettere

    $immagine = '';

    così se
    if (is_uploaded_file($_FILES['image']['tmp_name']))

    è vero e quindi hai caricato un'immagine, verrà eseguita l'assegnazione
    $immagine = $codice.$estensione;

    ed avrai il nome della tua immagine da inserire nel db, altrimenti resterà una stringa vuota e nel db resterà vuoto il campo riguardante l'immagine, senza dare errori perché comunque la variabile $immagine usata nella query esiste.

    Con la stessa logica puoi intervenire sulle altre variabili.

  6. #6
    Scusami per la formattazione, me ne sono accorto troppo tardi.....
    Grazie per il consiglio, in giornata provo.
    Ciao.

  7. #7
    Oppure puoi settare il campo del DB su NULL, ovviamente nel caso che lo stesso non debba essere per forza riempito.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il problema non glielo da il db, ma PHP che se non dichiara $immagine non sa dove andarla a pescare per utilizzarla nella query.

    Tant'è che l'errore dice "Notice: Undefined variable:..."

  9. #9
    Scusa hai ragione avevo letto male

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.