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

    Record inseriti per errore due volte

    Ciao ragazzi,

    ho creato un piccolo script per inserire una serie di dati all'interno di una tabella mysql a partire da qualche array dichiarato localmente. In sostanza funziona, però quando vado ad esaminare il contenuto della tabella mysql trovo che i record al suo interno sono stati duplicati e non riesco a capirne il motivo. L'inserimento dati nella tabella avviene tramite un ciclo for che si ripete per il corretto numero di volte (di questo sono sicuro). Ecco il codice:

    Codice PHP:
    <?php
          
    $cognomi 
    = array ("ORIANI ""FILIPPI "" visaggio""visaggio");
    $nomi = array ("MAURO""diego""daniele""carlo");
    $numeri_telefono = array ("237""202"" 200""300");
             
    //controlla che gli elementi degli array $cognomi ed $numeri_telefono non siano stringhe vuote, dal momento che le relative righe nella tabella "rubrica" hanno l'attributo "not null". Utile anche per evitare che all'interno del database vengano memorizzati spazi vuoti, così da non sprecare memoria inutilmente;
             
    for ($i 0$i count ($cognomi); $i++)
             
    {
       
    $cognomi[$i] = trim($cognomi[$i], " ");            
       
    $numeri_telefono[$i] = trim($numeri_telefono[$i], " ");            
    }
          
    //connessione a mysql e selezione del database;      
          
    include("config.inc.php");
    $db mysql_connect($db_host$db_user$db_password);
             
    if (
    $db == FALSE)
             
    {
        die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    }
             
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
             
    //inserimento dati nella tabella;

     
    for ($i 0$i count ($cognomi); $i++)
             
    {

    $query "INSERT INTO $db_table (cognome, nome, numero_telefono) VALUES ('$cognomi[$i]', '$nomi[$i]', '$numeri_telefono[$i]')";

     
    mysql_query($query$db);
             
    if (
    mysql_query($query$db))
             
    {
       echo 
    "Inserimento n.[$i] avvenuto correttamente";
    }                

    else
                
    {
        echo 
    "Errore durante l'inserimento n.[$i]";
    }
             
    }
             
    //chiusura connessione a mysql alla fine dello script;
             
    mysql_close($db);         

    ?>
    Quando eseguo lo script in output ricevo giustamente la scritta "Inserimento n. avvenuto correttamente" per quattro volte, eppure i record all'interno della tabella mysql sono 8 e non 4. La colonna ID (auto_increment) contiene valori da 1 a 8.

    Qualcuno è in grado per favore di spiegarmi dove sbaglio?

    Grazie

  2. #2
    Non mi sembra così difficile da capire: esegui due volte la chiamata a mysql_query().

  3. #3
    Grazie per la risposta.

    Dubbio: l'istruzione $query = "INSERT INTO $db_table...etc" non dovrebbe semplicemente assegnare alla variabile $query l'istruzione mysql? sembra che questo assegnamento determini direttamente l'esecuzione del comando, giusto?

  4. #4
    Nel tuo codice hai scritto:

    Codice PHP:
    mysql_query($query$db);
             
    if (
    mysql_query($query$db)) 
    Ovvero, richiami due volte mysql_query() eseguendo di conseguenza la query di INSERT contenuta nella variabile $query.

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.