Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Marcel

Cadastrando Multiplos dados de uma vez?

Recommended Posts

Ola, sou iniciante no PHP estou desenvolvendo um sistema administrativo como forma de estudo e me deparei com o seguinte problema: Como cadastrar múltiplos dados em sequencia?

 

Minha ideia é capturar os dados via post de um formulário, um dos campos vai indicar a que tabela os dados serão atribuidos e em uma caixa de texto serão colocados todos os dados, por exemplo:

 

Ana, 19 anos, Brasil, São Paulo, SP
Pedro, 26 anos, Brasil, Lisboa, SP
Alex, 30 anos, Brasil, São Paulo, SP

 

A virgula servira para separar os dados e cada linha representa uma linha diferente no bd. Eu sei que é possível fazer isso, só não sei como exatamente, quem souber pode me dar uma ajuda com este problema?

 

Desde ja agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Como cadastrar múltiplos dados em sequencia?
várias linhas.

cada dado em uma linha de INSERT

 

A virgula servira para separar os dados e cada linha representa uma linha diferente no bd.

?

 

estude Formas Normais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não da pra usar o explode nessa caso?

Ja consegui separar por linha, mas ainda não entendi como faço pra separar cada dado depois da "," e registra-lo no BD.

Por linha seria algo assim, pelo que entendi:

$linhas = explode("\n", $conteudo_do_textarea); 
foreach ($linhas as $linha) { // comando para inserir a linha no BD }

 

Mas e para separar os dados e atribuir a uma array?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
$String = <<<STRING
Ana, 19 anos, Brasil, São Paulo, SP
Pedro, 26 anos, Brasil, Lisboa, SP
Alex, 30 anos, Brasil, São Paulo, SP
STRING;

$Explode = explode( "\n" , $String );
array_walk( $Explode, function( &$Explode ){
           $Explode =& explode( ', ' , $Explode );
});
for( $i = 0; $i < count( $Explode ); ++$i ){
    foreach( $Explode[ $i ] as $Data ){
             $Dados[ $i ][] = is_numeric( $Data ) ? intval( $Data ) : sprintf( "'%s'" ,  $Data );
    }
    $Insert[] = sprintf( '( %s )' , implode( ',' , $Dados[ $i ] ) );
}
printf( 'INSERT INTO `...` VALUES %s' , implode( ',' , $Insert ) );

Saída:

INSERT INTO `...` VALUES ( 'Ana','19 anos','Brasil','São Paulo','SP' ),
( 'Pedro','26 anos','Brasil','Lisboa','SP' ),( 'Alex','30anos','Brasil','São Paulo','SP' )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostei desse código do Andrey.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.