Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    59

    Problema inserimento doppio in mysql

    Ciao a tutti, è da un pò che ho abbandonato la programmazione in php causa poco tempo a disposizione.
    adesso mi sono messo a creare un piccolo gestionale per l'impresa di famiglia e devo dire che sono un pò arrugginito.
    ho questo problema: prendo i dati tramite un form in una pagina e lo passo ad un'altra che mi esegue la sola query, ma il problema è che quando vado a controllare su phpmyadmin vedo che il record è inserito doppio e il timestamp è perfettamente uguale (nemmeno un ms tra un inserimento e l'altro).

    se alla pagina del form passo un id tramite get, inizializzo una variabile che poi mi controlla se effettuare l'update oppure un nuovo inserimento.
    il codice che controlla l'update o l'insert ed effettua le query è il seguente:

    Codice PHP:
    if ($_POST['id_cliente']){ 
    $query_archivio "UPDATE clienti SET broker_id='$broker_id', ragione_sociale='$ragione_sociale', nome='$nome', cognome='$cognome', codice_fiscale='$codice_fiscale', data_di_nascita='$data_di_nascita', luogo_nascita='$luogo_nascita', indirizzo='$indirizzo', comune='$comune', cap='$cap', provincia='$provincia', email='$email', telefono='$telefono', fax='$fax', cellulare='$cellulare' WHERE id = '".$_POST['id_cliente']."'"
    } else{ 
    $query_archivio="INSERT INTO clienti (broker_id,ragione_sociale,nome,cognome,codice_fiscale,data_di_nascita,luogo_nascita,indirizzo,comune,cap,provincia,email,telefono,fax,cellulare) VALUES ('$broker_id','$ragione_sociale','$nome','$cognome','$codice_fiscale','$data_di_nascita','$luogo_nascita','$indirizzo','$comune','$cap','$provincia','$email','$telefono','$fax','$cellulare')"


    $salvataggio_db_archivio sql_recordset ($query_archivio); 

    echo 
    "

    Cliente salvato correttamente in archivio.</p>"


    se si tratta di un update funziona tutto bene, invece se effettuo un nuovo inserimento ecco il doppio record....cosa diavolo può essere???

    grazie!

  2. #2
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Cosa contiene la funzione sql_recordset?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    59
    hai esattamente ragione, scusate

    Codice PHP:
    function sql_recordset($sql_query) { 
           
    $result mysql_query($sql_query); 
        if (
    $result==FALSE) { 
            
    //ScriviErrore
            
    ("Errore durante la query: ".mysql_error()); 
          }
    else { 
          for (
    $i=0$i<mysql_num_rows($result); $i++) 
          
    $risposta[$i] = mysql_fetch_array($result); 
          return 
    $risposta
          } 


  4. #4
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Che senso ha fare il fetch del risultato di una query di insert o di update?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    59
    in origine era creata solo per le select in modo da ritrovarmi direttamente un array con la risposta ma l'avevo dimenticato!

    ho provato ad effettuare la query tramite il solo

    Codice PHP:
    $salvataggio_db_archivio mysql_query($query_archivio); 
    ma il risultato è sempre lo stesso

  6. #6
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Ricapitolando, solo con questo codice (ovviamente con le variabili valorizzate):

    Codice PHP:
    $query_archivio="INSERT INTO clienti (broker_id,ragione_sociale,nome,cognome,codice_fiscale,data_di_nascita,luogo_nascita,indirizzo,comune,cap,provincia,email,telefono,fax,cellulare) VALUES ('$broker_id','$ragione_sociale','$nome','$cognome','$codice_fiscale','$data_di_nascita','$luogo_nascita','$indirizzo','$comune','$cap','$provincia','$email','$telefono','$fax','$cellulare')"

    mysql_query($query_archivio); 
    hai un doppio inserimento nel db?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    59
    ho creato un file pulito:

    Codice PHP:
    $db mysql_connect($db_host$db_user$db_password); 
    if (
    $db == FALSE) die ("Errore nella connessione."); 
    mysql_select_db($db_name$db
    or die (
    "Errore nella selezione del database."); 

    Codice PHP:
    $ragione_sociale=mysql_real_escape_string($_POST['ragione_sociale']); $nome=mysql_real_escape_string($_POST['nome']); $cognome=mysql_real_escape_string($_POST['cognome']); $codice_fiscale=mysql_real_escape_string($_POST['codice_fiscale']); $data_di_nascita=mysql_real_escape_string($_POST['data_di_nascita']); $luogo_nascita=mysql_real_escape_string($_POST['luogo_nascita']); $indirizzo=mysql_real_escape_string($_POST['indirizzo']); $comune=mysql_real_escape_string($_POST['comune']); $cap=mysql_real_escape_string($_POST['cap']); $provincia=mysql_real_escape_string($_POST['provincia']); $email=mysql_real_escape_string($_POST['email']); $telefono=mysql_real_escape_string($_POST['telefono']); $fax=mysql_real_escape_string($_POST['fax']); $cellulare=mysql_real_escape_string($_POST['cellulare']); $id_cliente=mysql_real_escape_string($_POST['id_cliente']); 


    Codice PHP:
    $query_archivio="INSERT INTO clienti (broker_id,ragione_sociale,nome,cognome,codice_fiscale,data_di_nascita,luogo_nascita,indirizzo,comune,cap,provincia,email,telefono,fax,cellulare) 
    VALUES ('
    $broker_id','$ragione_sociale','$nome','$cognome','$codice_fiscale','$data_di_nascita','$luogo_nascita','$indirizzo','$comune','$cap','$provincia','$email','$telefono','$fax','$cellulare')"

    $salvataggio_db_archivio mysql_query($query_archivio); 
    stesso errore del doppio inserimento

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    59
    sono uno stupido!

    gestisco tutto tramite un index.php che, una volta filtrati i get (x evitare inclusione file remoti), include le varie pagine.
    sempre nell'index inizializzo la sessione.
    il file che crea il salvataggio/update lo includevo nella index, con il problema del doppio inserimento.

    ho creato il file per il salvataggio contenente il solo codice strettamente necessario e adesso lo richiamo direttamente invece di passare dall'index e includerlo..... e il doppio inserimento non lo fa!

    adesso mi resta da capire: anche se includo il file che effettua il salvataggio, perchè inserisce doppio record? mica lo richiama due volte...

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    59
    Codice PHP:
    /* modulo gestione titoli pagina e content*/ 
    ob_start(); if (file_exists("$view") && (substr($view,0,4)!="http") && (substr($view,0,3)!="www") && $view!="salva_newsletter" && $view!="salva_news") { include("$view"); } 
    $body ob_get_clean(); 


    Codice PHP:
    if (file_exists("$view") && (substr($view,0,4)!="http") && (substr($view,0,3)!="www") ) { include("$view"); } 
    else { 
    echo(
    '<bold>Pagina non disponibile.</bold>
    '
    ); 
    if ( (
    substr($view,0,4)=="http") || (substr($view,0,3)=="www") ) {
    echo (
    "Tentativo di inclusione file esterno!");} 
    include (
    "log_request.php"); 
    header'Location: login.php' ) ; 


    e invece lo includevo due volte........!!!!!!!

    includevo la pagina prima nell'header html per poter gestire i titoli della pagina (le variabili titolo paqina ecc sono salvate all'interno del file che vado ad includere)...adesso ho aggiunto il filtro sull'inclusione del file utilizzato per il salvataggio e funge

    l'ho detto che sono un pò arrugginito!!!
    grazie dell'aiuto

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.