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

    problemi derivanti da query

    Buona sera a tutti! (anzi buona notte vista l'ora)
    Vi pongo un quesito a cui non so dare risposta.

    Per un sito di annunci immobiliari (di un progetto universitario, quindi nulla di trascendentale) ho creato la pagina queryinserimentoimmobile.php

    Mi sono accorta però, che nonostante l'inserimento immobile vada sempre a buon fine, sono sorti due problemi!

    (1) Nel campo descrizione, se vengono inserite lettere accentate esce l'errore
    (2) Se aggiorno la pagina, mi fa nuovamente le query, inserendo quindi lo stesso immobile, con un nuovo id.

    Come posso risolverli?
    Vi posto il codice della pagina:

    Codice PHP:
    <?php
    #FILE CONTENENTE LE QUERY PER L'INSERIMENTO NEL DB DI UN IMMOBILE

    #DEVO RICONVERTIRE LE QUERY CON LE MIE FUNZIONI

    session_start();
    #require('pg_connect.php');
    #$que = new db()
    #$que->db_open();

    if ($mex==""){
        
    $db pg_connect("host=** port=** *dbname=** user=** password=**");
        
    #NEL CASO IN CUI IL TIPO NON SIA APPARTAMENTO IL NLOCALI E IL PIANO DEVONO ESSERE NULL
        
    if (!empty($nlocali)){
            
    #INSERIMENTO IMMOBILE
            
    $result pg_query($db"INSERT INTO immobile (tipo, uso, mq, postoauto, descrizione, nlocali, piano) VALUES ('".$tipo."', '".$uso."', '$mq', '".$postoauto."', '".$descrizione."', '$nlocali', '".$piano."')");
            
    #$result = $que->query("INSERT INTO immobile (tipo, uso, mq, postoauto, descrizione, nlocali, piano) VALUES ('".$tipo."', '".$uso."', '$mq', '".$postoauto."', '".$descrizione."', '$nlocali', '".$piano."')");
            #RECUPERO ID_I
            
    $query pg_query($db"SELECT currval('immobile_id_i_seq')");
            
    $record pg_fetch_row($query);
            
    $id_i $record[0]; 
            
    #$id_i = $que->query_fetch_row("SELECT currval('immobile_id_i_seq')");
            #INSERIMENTO RECAPITO
            
    $rec pg_query($db"INSERT INTO recapito (id_i, via, nciv, cap, comune, provincia, regione) VALUES ('$id_i', '".$via."', '".$nciv."', '".$cap."', '".$comune."', '".$prov."', '".$reg."')");
            
    #$rec = $que->query("INSERT INTO recapito (id_i, via, nciv, cap, comune, provincia, regione) VALUES ('$id_i', '".$via."', '".$nciv."', '".$cap."', '".$comune."', '".$prov."', '".$reg."')");
        
    }else{
            
    #INSERIMENTO IMMOBILE
            
    $result pg_query($db"INSERT INTO immobile (tipo, uso, mq, postoauto, descrizione) VALUES ('".$tipo."', '".$uso."', '$mq', '".$postoauto."', '".$descrizione."')");
            
    #$result = $que->query("INSERT INTO immobile (tipo, uso, mq, postoauto, descrizione) VALUES ('".$tipo."', '".$uso."', '$mq', '".$postoauto."', '".$descrizione."')");
            #RECUPERO ID_I
            
    $query pg_query($db"SELECT currval('immobile_id_i_seq')");
            
    $record pg_fetch_row($query);
            
    $id_i $record[0];
            
    #$id_i = $que->query_fetch_row("SELECT currval('immobile_id_i_seq')");
            #INSERIMENTO RECAPITO
            
    $rec pg_query($db"INSERT INTO recapito (id_i, via, nciv, cap, comune, provincia, regione) VALUES ('$id_i', '".$via."', '".$nciv."', '".$cap."', '".$comune."', '".$prov."', '".$reg."')");
            
    #$rec = $que->query("INSERT INTO recapito (id_i, via, nciv, cap, comune, provincia, regione) VALUES ('$id_i', '".$via."', '".$nciv."', '".$cap."', '".$comune."', '".$prov."', '".$reg."')");
        
    }
        
    #INSERIMENTO STATO OCCUPAZIONALE
        
    if (!empty($statoocc)){
            if (
    $statoocc=="Liberoda"){
                
    $apartireda $giorno."-".$mese."-".$anno;
                
    $statooccupazionale pg_query($db"INSERT INTO statoocc (id_i, stato, apartireda) VALUES ( '$id_i', '".$statoocc."', '".$apartireda."')");
                
    #$statooccupazionale = $que->query("INSERT INTO statoocc (id_i, stato, apartireda) VALUES ( '$id_i', '".$statoocc."', '".$apartireda."')");
            
    }else{
                
    $statooccupazionale pg_query($db"INSERT INTO statoocc (id_i, stato) VALUES ( '$id_i', '".$statoocc."')");
                
    #$statooccupazionale = $que->query("INSERT INTO statoocc (id_i, stato) VALUES ( '$id_i', '".$statoocc."')");
            
    }
        }else{
            
    $statooccupazionale pg_query($db"INSERT INTO statoocc (id_i) VALUES ('$id_i')");
            
    #$statooccupazionale = $que->query("INSERT INTO statoocc (id_i) VALUES ('$id_i')");
        
    }
        
    #INSERIMENTO PROPRIETA'
        #TROVO IL CODICE FISCALE DELL'UTENTE IN SESSIONE
        #$codf = $que->query_fetch_row("SELECT codf FROM utente WHERE username='".$_SESSION['username']."' AND pw='".$_SESSION['password']."'");
        
    $query pg_query($db"SELECT codf FROM utente WHERE username='".$_SESSION['username']."' AND pw='".$_SESSION['password']."'");
        
    $record pg_fetch_row($query);
        
    $codf $record[0];    
        
    #PER ADESSO FACCIO FINTA CHE NON ESISTA LA DATA VENDITA
        
    $dataacquisizione date("d-m-y");
        
    #INSERISCO I DATI NELLA TABELLA PROPRIETA'
        #$proprieta = $que->query("INSERT INTO proprieta (dataacquisizione, codf, id_i) VALUES ('".$dataacquisizione."', '".$codf."', '$id_i')");
        
    $proprieta pg_query($db"INSERT INTO proprieta (dataacquisizione, codf, id_i) VALUES ('".$dataacquisizione."', '".$codf."', '$id_i')");
        
        
    #SE LA QUERY NON ANDASSE A BUON FINE, TORNA ALLA RELATIVA PAGINA DI INSERIMENTO IMMOBILE
        #CONTROLLI A CASCATA
        
    if (!$result){
            
    ?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
            
    if ($uso=="privato"){
                
    ?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
            
    }elseif ($uso=="commerciale"){
                
    ?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
            
    }
            exit;
        }else{
            if (!
    $id_i){
                
    ?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                
    if ($uso=="privato"){
                    
    ?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                
    }elseif ($uso=="commerciale"){
                    
    ?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                
    }
                exit;
            }else{
                if (!
    rec){
                    
    ?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                    
    if ($uso=="privato"){
                        
    ?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                    
    }elseif ($uso=="commerciale"){
                        
    ?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                    
    }
                    exit; 
                }else{
                    if (!
    $statooccupazionale){
                        
    ?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                        
    if ($uso=="privato"){
                            
    ?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                        
    }elseif ($uso=="commerciale"){
                            
    ?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                        
    }
                        exit;
                    }else{
                        if (!
    $codf){
                            
    ?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                            
    if ($uso=="privato"){
                                
    ?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                            
    }elseif ($uso=="commerciale"){
                                
    ?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                            
    }
                            exit;    
                        }else{
                            if(!
    $proprieta){
                                
    ?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
                                
    if ($uso=="privato"){
                                    
    ?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                                
    }elseif ($uso=="commerciale"){
                                    
    ?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                                
    }
                                exit;
                            }else{
                                
    #$que->db_close();
                                
    ?>    <tr><td class="menu" align="center">Immobile inserito!</td></tr>
                                    <tr><td class="testo">Vuoi creare l'annuncio per l'immobile che hai appena inserito?</td></tr>
                                    <tr><td align="center">[url="queryannuncio.php"]Crea annuncio[/url]&nbsp &nbsp &nbsp &nbsp [url="home.php"]Torna alla homepage[/url]</td>
                                    </tr><?php
                            
    }
                        }
                    }
                }
            }
        }
    }
    ?>

  2. #2
    Hey!
    Nessuno sa darmi qualche consiglio? O magari sa dove posso andare a trovare una soluzione?
    Grazie!

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    per le lettere accentate è una questione di encoding della pagina, probabilmente differente da quello del DB.. dovresti utilizzare UTF-8 DAPPERTUTTO..
    per l'altra questione ti conviene, ad inserimento avvenuto, fare un redirect ad un'altra pagina, portandoti dietro (con le sessioni..) un "log" di quello che è accaduto.
    cioè dai vari
    Codice PHP:
    if (!$result){
            ?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!</td></tr><?php
            
    if ($uso=="privato"){
                
    ?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
            
    }elseif ($uso=="commerciale"){
                
    ?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
            
    }
            exit;
    eccetera modificarli tipo:
    Codice PHP:
    if (!$result){ $_SESSION['result'] = "negativo"
    alla fine di queste modifiche fai un redirect ad un'altra pagina che contiene
    Codice PHP:
    if ($_SESSION['result'] == "negativo" ) { //stampa qualcosa
    } else {
    //stampa altro

    alla fine di questa pagina distruggi i valori delle sessioni..
    puoi anche fare un controllo che se in questa pagina fai F5 (refresh..) ti dice qualcosa o ti reindirizza alla pagina di inserimento

  4. #4
    Grazie mille per le risposte!
    Penso che per il secondo problema farò il controllo sul refresh, perché ho troppe pagine di inserimento con troppe variabili!

    Per la questione dei caratteri, come faccio ad utilizzare l'UTF-8?

  5. #5
    Ho risolto il primo problema delle query ripetute a seguito dell'aggiornamento della pagina in questo modo.

    Codice PHP:
                        if(!$result){
                            ?><tr><td class="testo">Ops! C'&egrave qualcosa che non va!PROPRIETA</td></tr><?php
                            
    if ($uso=="privato"){
                                
    ?><tr><td class="testo"><form method=post action="impriv.php"><input type="submit" value="Indietro"></td></tr><?php
                            
    }elseif ($uso=="commerciale"){
                                
    ?><tr><td class="testo"><form method=post action="imcomm.php"><input type="submit" value="Indietro"></td></tr><?php
                            
    }
                            exit;
                        }else{
                            
    #$que->db_close();
                            
    header("Location: immobileinserito.php");                
                        }

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.