Ir para conteúdo
Fórum Script Brasil
  • 0

Upload do txt no banco


leandromx

Pergunta

Oi Pessoal,

Seguinte estou usando esse código abaixo para subir um arquivo txt com emails para meu banco

esse código aqui eu peguei com o beraldo e esta funcionando, grava uma lista de emails bo BD , só que é um trabalho manual

olhem

<?php
include 'conexao.php';

$con = mysql_connect("localhost", "root", "");
mysql_select_db($db, $con);

$file = file("lista.txt");
for($i = 0; $i < count($file); $i++) {
$email          = substr($file[$i], 0, 40);


$sql = "INSERT INTO newsletter (email) VALUES('$email')";
mysql_query($sql) or die(mysql_error());
}
?>
Eu preciso, fazer o seguinte.. A pessoa clica em procurar e importa o arquivo txt dela e grave no banco.. O códgo abaixo, eu consegui chegar até esse código abaixo, só que esta com problema porque no BD ele grava assim id email codStatus bloqueado enviado 1 C 0 0 0 Não sei da onde esta saindo essa letra C e só grava uma ID, sendo que minha lista de teste tem 10 emails.
<?php
$host = "localhost";
$user = "root";
$password = "";
$db = "newsletter";

$con = mysql_connect("localhost", "root", "");

if(isset($_POST["insert"]) && ($_POST["insert"] == "form1")) {
$file = $_FILES['arquivo']['tmp_name'];
$sql = "INSERT INTO newsletter (email) VALUES('$email')";
for($i = 0; $i < count($file); $i++) {
$email          = substr($file[$i], 0, 40);
}
mysql_select_db($db, $con);
$Result1 = mysql_query($sql, $con) or die(mysql_error());
  if($Result1 > 0){


   echo('<script> alert("Cadastro efetuado com sucesso!");  </script>');
}

else {
         echo('<script> alert("Cadastro NÃO efetuado !");  </script>');
    }
}
?>

<form action="exportarphp" method="post" enctype="multipart/form-data" name="form1">
  <div>
                  <input name="arquivo" type="file" size="50" maxlength="15">
                </div>
                <br>
                <br>
                <input type="submit" name="Submit" value="Importar">
                <input type="hidden" name="insert" value="form1">
              </form>

Alguém poderia me ajudar ???

Editado por leandromx
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Se você colocasse a query dentro do laço ajudava...

if(isset($_POST["insert"]) && ($_POST["insert"] == "form1")) {
$file = $_FILES['arquivo']['tmp_name'];
mysql_select_db($db, $con);
for($i = 0; $i < count($file); $i++) {
$email          = substr($file[$i], 0, 40);
$sql = "INSERT INTO newsletter (email) VALUES('$email')";
$Result1 = mysql_query($sql, $con) or die(mysql_error());
}

Se continuar com o problema do "C" (já que laço só vai resolver a questão de só grava um resultado), ai é ali na linha do $email o problema...

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade a sua lógica inteira está errada... se você envia um arquivo e quer que cada linha vá para o BD a leitura tem que ser feita de forma diferente, com o exemplo do manual...

if(isset($_POST["insert"]) && ($_POST["insert"] == "form1")) {
$handle = fopen($_FILES['arquivo']['tmp_name'],'rb');
mysql_select_db($db, $con);
while (!feof($handle)) {
$email = fread($handle, 8192);
$sql = "INSERT INTO newsletter (email) VALUES('$email')";
$Result1 = mysql_query($sql, $con) or die(mysql_error());
}
fclose($handle);

Ai sim você estará pegando linha por linha, não se se pode ser feito direto do arquivo temporário ou ele tem que ser movido antes de ser aberto...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...