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

Inserir Múltiplos dados dinamicamente em banco de dados mysql


PedroRapucci

Pergunta

Ola Galera, estou em um projeto e estou travado em um quesito muito importante para ele.

Já procurei incansavelmente na internet um código que faça isso mas não estou conseguindo e os que eu peguei não consigo adaptar.

É o seguinte:

Vou receber alguns dados de forma POST no exemplo que coloquei são duas variáveis "$nome" e "$telefone" esses dados vão vir separados por virgula. EX: $nome=Pedro,João,Guilherme,Giovane. E cada registro sera uma linha no banco de dados, so que eu quero adicionar consecutivamente os telefones de cada um, então: $telefone=33543564,4563464,565475,47647575.

Esses dados vão vir em quantidades aleatória pode vir dês de 1 registro ate infinito.

Eu não quero fazer requisição ao banco para cada registro (linha), quero inserir de uma so vez todos os registro, sem usar whil ou coisa do tipo.

Eu tenho um código que estava tentando mas não estou conseguindo

<?php
$nome = "café,açúcar,leite com pão,pedro,gustavo,marques,rapucci";
$telefone = "2343543,563454,5456345,6435645,765467,233245,52345234";

//explodimos os itens da variavel pela vírgula
$valoresnomes = explode(",",$nome);
$valorestelefones = explode(",",$telefone);

$unir = sprintf( 'INSERT INTO tabela(nome, telefone) VALUES (%s)', implode( "'), ('" , $valoresnomes.",".$valorestelefones ) );

echo $unir;
?>
Muito obrigado para quem puder ajudar. Sei que para muitos isso parece ridículo mas não tenho um conhecimento avançado em php.
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Experimenta algo assim:

$nome = "café,açúcar,leite com pão,pedro,gustavo,marques,rapucci";
$telefone = "2343543,563454,5456345,6435645,765467,233245,52345234";

//explodimos os itens da variavel pela vírgula
$valoresnomes = explode(",",$nome);
$valorestelefones = explode(",",$telefone);
$unir = 'INSERT INTO tabela (nome, telefone) VALUES (';
for ($i = 0; $i < count($valoresnomes); $i++) {
	if ($i == count($valoresnomes) - 1) {
		$unir .= "'" . $valoresnomes[$i] . "'," . $valorestelefones[$i] . ")";
	}
	else {
		$unir .= "'" . $valoresnomes[$i] . "'," . $valorestelefones[$i] . "), (";
	}
}
echo $unir; //contém a query pronta a executar.

Espero ter ajudado.

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

  • 0

NOOOOSSSSAAA, Você destruiu, mandou bemmmm, muito obrigado, parabéns pela sua capacidade, um dia vou ser que nem você.

Inseriu corretamente no banco, dei uma adaptada para ver se conseguia adicionar outros dados (colunas) e é muito fácil é só adicionar a variável logo apos o "IF" nos dois argumentos, precedida de (---"','" .---). E com certeza vou usar em muitos projetos.

Vou deixar o código completo de como utilizei para os usuários que precisam de algo parecido conseguir facilmente.

<?php
 // use apenas um desses exemplos

//inicio do exemplo com dados vindo do POST 
 $nome =urldecode ($_POST['nome']);
  $telefone =urldecode ($_POST['telefone']);
  $email =urldecode ($_POST['email']);
//final do exemplo com dados vindo do POST 

//ou

// inicio do exemplo com dados definidos
$nome = "café,açúcar,leite com pão,pedro,gustavo,marques,rapucci";
$telefone = "2343543,563454,5456345,6435645,765467,233245,52345234";
$email = "cafe@gmail.com,acucar@gmail.com,leite@gmail.com,pedro@gmail.com,gustavo@gmail.com,marques@gmail.com,rapucci@gmail.com";
// final do exemplo com dados definidos  


//explodimos os itens da variavel pela vírgula
$valoresnomes = explode(",",$nome);
$valorestelefones = explode(",",$telefone);
$valoresemail = explode(",",$email);

$unir = 'INSERT INTO banco_agenda (nome, telefone, email) VALUES (';
for ($i = 0; $i < count($valoresnomes); $i++) {
	if ($i == count($valoresnomes) - 1) {
		$unir .= "'" . $valoresnomes[$i] . "','" . $valorestelefones[$i] . "','" . $valoresemail[$i] . "')";
	}
	else {
		$unir .= "'" . $valoresnomes[$i] .
"','" . $valorestelefones[$i] . "','" . $valoresemail[$i] . "'), (";
	}
}



  $conexao = mysql_connect('localhost','USUARIO','SENHA');
  
  mysql_select_db('BANCO DE DADOS',$conexao);
  
  $resultado = mysql_query($unir) or die ("Erro: " . mysql_error());
  
  if($resultado)
		  echo "ok";
   else
          echo "0";
		  
?>

Agradeço mais uma vez. Até a próxima.

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...