Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766

    Copiare 1200 indirizzi email da un file.txt a una tabella del db, come fare?

    Ho necessità di copiare circa 1200 indirizzi email, per ora li ho salvati da un db e li ho messi in un file txt ma dovrei metterli in una tabella di un'altro db.
    Gia' tempo fa lo feci con l'aiuto di guidoz, solo che ora non so perche' ma quel codice non mi funziona piu'.
    Ve lo incollo:
    Codice PHP:
    <?php
    $_CFG
    ['file'] = 'email_nuove.txt';
    $_CFG['separatore'] = ',';
    $_CFG['db_host'] = 'miohost';
    $_CFG['db_user'] = 'user';
    $_CFG['db_name'] = 'utente';
    $_CFG['db_pwd'] =  'password';
    $_CFG['db_table'] = 'indirizzi_email';

    ########################
    $righe file($_CFG['file']);
    $newrighe = array();
    foreach (
    $righe as $riga) if(trim($riga) !=''$newrighe[] = $riga;
    @
    mysql_connect($_CFG['db_host'],$_CFG['db_user'],$_CFG['db_pwd']) 
    or die (
    mysql_errno() . ": " mysql_error());
    mysql_select_db($_CFG['db_name']);
    echo 
    'Inserimento di '.count($newrighe).' record in corso....
    '
    ;
    $ins 0;
    foreach (
    $newrighe as $riga)
    {
    $contenuto explode($_CFG['separatore'],$riga);
    $values='';
    foreach (
    $contenuto as $elem)
    $values .= "'".mysql_escape_string($elem)."',";
    $values substr($values0, -1);
    $sql "INSERT INTO `{$_CFG['db_table']}` VALUES ($values);";
    if(!
    mysql_query($sql)) echo "problemi con la query: $sql
    [b]"
    .mysql_error().'[/b]

    '
    ;
    else 
    $ins++;
    }
    mysql_close();
    echo 
    "Inseriti con successo $ins record";
    ?>
    Tutti i file li ho messi in un file chiamato email_nuove.txt e sono messi in colonna e separati da una virgola, ma ad ogni inserimento mi dice:
    problemi con la query: INSERT INTO `indirizzi_email` VALUES ('indirizzo@email.it','\n');
    Column count doesn't match value count at row 1
    Cosa posso fare?
    Oppure posso copiare in qualche altro modo gli indirizzi da un db all'altro tramite phpmyadmin?

  2. #2
    Così com'è prova ad inserire due colonne nella tabella, nella seconda cerca di metterci un acapo.
    Probabilmente è dovuto al fatto che il file che hai creato è diverso da come l'aspetta, c'è un separatore alla fine della riga? Se si prova a togliere quello...

  3. #3
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    Originariamente inviato da margherite
    Così com'è prova ad inserire due colonne nella tabella, nella seconda cerca di metterci un acapo.
    Probabilmente è dovuto al fatto che il file che hai creato è diverso da come l'aspetta, c'è un separatore alla fine della riga? Se si prova a togliere quello...
    il problema pare che sta nell'ultima email perche' non avevo messo la virgola, cioe' stanno cosi':
    1@email.it,
    2@email.it,
    3@email.it,
    4@email.it

    dopo 4 dovevo mettere la virgola, il problema e' che dice che li ha copiati, ma in realta' nel db non entra niente, solo l'id
    Ora non ricordo se devo creare la tabella solo con il campo email (con qualche opzione particolare) oppure anche il campo id, ma mi pare che quello devo metterlo alla fine...

  4. #4
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    se creo la tabella indirizzi_email e ci metto 2 campi:
    1) id (primaria e autoincrement)
    2) email (varchar 45)
    Quando lancio lo script mi dice che sono stati inseriti i record ma in realta' ha messo solo gli id.

    Io ricordo che tenevo un solo campo nel db e poi dopo creavo il campo id.
    Non e' che non riconosce il campo chiamato email? Forse devo chiamarlo in qualche altro modo anche nello script?

  5. #5
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    ho risolto!!
    era proprio la virgola nella llista delle email che non doveva proprio esserci

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.