Jump to content


Photo

Inserir E-mail No Banco De Dados.


  • Faça o login para participar
16 replies to this topic

#1 janainadorneles

janainadorneles

    Normal

  • Usuários
  • 116 posts
  • Sexo:Não informado

Posted 24/10/2008, 15:06

Olá amigos,

Se possivel me falem como eu poderia inserir em uma tabela do banco de dados uma lista de emails assim:


fulano@hotmail.com.br;
beltrano@yahoo.com.br;
etc;


Então, eu tenho uma lista de 200 emails todos serapados por ; e como eu poderia fazer de modo automatico a inserção ID por ID ?

Agradeço suas gentilezas.

Bjs.
-- Janaina Dorneles
- Monitor Webdesign

· Navegador: FireFOX
· Sistem OS: Linux Conectiva
Esse é o melhor forum de PHP do Brasil :D

#2 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 24/10/2008, 15:15

acho que você vai ter q jogar sua lista em um Array, depois explodir usando o ';' como separador. E fazer um while pro código inserir um por um. Acho que é o unico jeito

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#3 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 24/10/2008, 15:26

A maioria dos SGBDs tem boas funções que fazem isso automaticamente (y)
O que você está usando? MySQL?

#4 janainadorneles

janainadorneles

    Normal

  • Usuários
  • 116 posts
  • Sexo:Não informado

Posted 24/10/2008, 15:43

resposta maykel: Sim essa eu acho que á unica forma porém não sei elaborar o codigo, tem alguma idéia?


resposta boirock: eu to usando mysql sim, será que ele tem?

Aguardo.
-- Janaina Dorneles
- Monitor Webdesign

· Navegador: FireFOX
· Sistem OS: Linux Conectiva
Esse é o melhor forum de PHP do Brasil :D

#5 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 24/10/2008, 15:53

Montei um exemplo bem bobo aqui:

[codebox]
<?
$emails = "email1@hotmail.com;email2@hotmail.com;email3@hotmail.com";
$explode = explode(";", $emails);

$insert = "INSERT INTO emails (email) VALUES \n";

$i = 1;
foreach($explode as $email) {
$insert .= "(" . $email . ")";
$insert .= count($explode) > $i ? ",\n" : ";\n";
$i++;
}

echo $insert;
?>
[/codebox]

Mas acho que tem uma forma melhor, como o boirock disse.
Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#6 dddj

dddj

    Normal

  • Usuários
  • 112 posts
  • Sexo:Masculino
  • Localidade:Campo Grande

Posted 24/10/2008, 15:58

Boa tarde , Tenta assim:
$emails = Array(Aki vc coloca a sua lista de emails);

foreach($emails  as $email) 
{

$insert="INSERT INTO tabela_email (campoemail) VALUES ('$email')";

mysql_query($insert) OR die(mysql_error());

}

Acho que resolve.
Djavan Loureiro - SEO Marketing - Search Engine Optimization - Otimização de Sites
Coloque seu site no topo dos sistemas de busca - Projeto SEM - Visitem o site.

#7 janainadorneles

janainadorneles

    Normal

  • Usuários
  • 116 posts
  • Sexo:Não informado

Posted 24/10/2008, 16:19

Entendi um pouco o code, porém ele não insere no BD.

Ele apenas imprime e não adicionar nos IDS em sequencia.

Por exemplo
ID 1: email1@hotmail.com
ID 2: email2@hotmail.com
ID 3: email3@hotmail.com

Aguardo.




Montei um exemplo bem bobo aqui:

<?$emails = "email1@hotmail.com;email2@hotmail.com;email3@hotmail.com";$explode = explode(";", $emails);$insert = "INSERT INTO emails (email) VALUES \n";$i = 1;foreach($explode as $email) {	$insert .= "(" . $email . ")";	$insert .= count($explode) > $i ? ",\n" : ";\n";	$i++;}echo $insert;?>

Mas acho que tem uma forma melhor, como o boirock disse.
Até mais ^_^


-- Janaina Dorneles
- Monitor Webdesign

· Navegador: FireFOX
· Sistem OS: Linux Conectiva
Esse é o melhor forum de PHP do Brasil :D

#8 dddj

dddj

    Normal

  • Usuários
  • 112 posts
  • Sexo:Masculino
  • Localidade:Campo Grande

Posted 24/10/2008, 16:25

Faz do jeito q eu falei
Djavan Loureiro - SEO Marketing - Search Engine Optimization - Otimização de Sites
Coloque seu site no topo dos sistemas de busca - Projeto SEM - Visitem o site.

#9 janainadorneles

janainadorneles

    Normal

  • Usuários
  • 116 posts
  • Sexo:Não informado

Posted 24/10/2008, 16:30

Tentei também, apenas não achei como dividir as entradas do " ; " pois os emails estão assim: "teste@teste.com.br;teste2@teste2.com.br;".
E como eu coloco no BD ?

Aguardo


Faz do jeito q eu falei


-- Janaina Dorneles
- Monitor Webdesign

· Navegador: FireFOX
· Sistem OS: Linux Conectiva
Esse é o melhor forum de PHP do Brasil :D

#10 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 24/10/2008, 16:32

Sim garota! (y)
O MySQL implementa o LOAD DATA pra isso.
Aqui no fórum já abordamos esse assunto algumas vezes, acho os tópicos antigos pdoerão te ajudar... veja:
http://forum.wmonlin...hlite=load data

Ok? :)

#11 janainadorneles

janainadorneles

    Normal

  • Usuários
  • 116 posts
  • Sexo:Não informado

Posted 24/10/2008, 16:51

Parece que meu servidor não funciona essa opção eu acho.

Parse error: syntax error, unexpected T_STRING in /home/restricted/home2/tonos/public_html/aut/cadastrar.php on line 9


e o código:

LOAD DATA INFILE 'email.txt' INTO TABLE emails FIELDS TERMINATED BY ';';
-- Janaina Dorneles
- Monitor Webdesign

· Navegador: FireFOX
· Sistem OS: Linux Conectiva
Esse é o melhor forum de PHP do Brasil :D

#12 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 24/10/2008, 17:25

Não... esse código não é de PHP... é de MYSQL
Você executa como se fosse um SELECT :)

#13 janainadorneles

janainadorneles

    Normal

  • Usuários
  • 116 posts
  • Sexo:Não informado

Posted 24/10/2008, 17:30

então como eu deveria executar ele? eu não tenho nem idéia.
Aguardo

Edição feita por: janainadorneles, 24/10/2008, 17:33.

-- Janaina Dorneles
- Monitor Webdesign

· Navegador: FireFOX
· Sistem OS: Linux Conectiva
Esse é o melhor forum de PHP do Brasil :D

#14 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 24/10/2008, 17:33

Pode ser no phpmyadmin ou pode executar via mysql_query, como se fose um SELECT

#15 janainadorneles

janainadorneles

    Normal

  • Usuários
  • 116 posts
  • Sexo:Não informado

Posted 24/10/2008, 17:48

Tentei fazer dessa forma, porém ele dá esse erro:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''email2' (email) VALUES ('teste@teste.com')' at line 1


$conexao = mysql_connect($host, $user, $password) or die(mysql_error());
$banco = mysql_select_db($db) or die(mysql_error());

$arquivo = 'email_so.txt';
$arq = fopen($arquivo,'r');

while(!feof($arq))
$linha[] = fgets($arq); // cria um array com o conteudo do arquivo

$sql = "INSERT INTO '$tabela' (email) VALUES ('$linha[0]')";
$result = mysql_query($sql) or die(mysql_error());
-- Janaina Dorneles
- Monitor Webdesign

· Navegador: FireFOX
· Sistem OS: Linux Conectiva
Esse é o melhor forum de PHP do Brasil :D




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq