Ir para conteúdo

POWERED BY:

Arquivado

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

jefersson

inclusão de vários dados no bd com mais de um array

Recommended Posts

olá pessoal, desculpem se coloquei o dupliquei algum tópico. A questão é que procurei e não encontrei a solução pra essa questão

 

$valores = range( 1 , 10 );
$array = array(
    'unidade_id'=>'1',
   'usuario_id'=>'1',
'usuario_tri_id'=>'1',
'servico_id'=>'1',
'prioridade_id'=>'1',
'status'=>'0',
'sigla_senha'=>'A',
'num_senha'=>'1',
'nm_cli'=>'1',
'num_local'=>'1',
'num_senha_serv'=>''
   );
  $test = implode("),(".implode(",", $array)."",$valores);
print_r ($test);

resultado

INSERT INTO atendimentos (unidade_id, usuario_id, usuario_tri_id, servico_id, prioridade_id, status, sigla_senha, num_senha, nm_cli, num_local, num_senha_serv) VALUES (1), (1,1,1,1,1,0,A,1,1,1,2), (1,1,1,1,1,0,A,1,1,1,3), (1,1,1,1,1,0,A,1,1,1,4), (1,1,1,1,1,0,A,1,1,1,5), (1,1,1,1,1,0,A,1,1,1,6), (1,1,1,1,1,0,A,1,1,1,7), (1,1,1,1,1,0,A,1,1,1,8), (1,1,1,1,1,0,A,1,1,1,9), (1,1,1,1,1,0,A,1,1,1,10)'

Meu problema esta nesse numero (1) ele deveria ser como os outros (1,1,1,1,1,0,A,1,1,1,2), mas não estou conseguindo.

Se alguém puder ajudar agradeço e muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O array $valores com o implode gera uma sequencia numeral para ser inserida no sql

exemplo:

 

(1,1,1,1,1,0,A,1,1,1,2), (1,1,1,1,1,0,A,1,1,1,3), (1,1,1,1,1,0,A,1,1,1,4)

 

fiz assim pra evitar de ficar fazendo vários inserts no bd e sobrecarregar-lo, pelo menos essa é a idéia :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só inserir o ID no array que você já criou. Por exemplo:

 

 

$array = array(
    'unidade_id'=>'1',
   'usuario_id'=>'1',
'usuario_tri_id'=>'1',
'servico_id'=>'1',
'prioridade_id'=>'1',
'status'=>'0',
'sigla_senha'=>'A',
'num_senha'=>'1',
'nm_cli'=>'1',
'num_local'=>'1',
'num_senha_serv'=>'',
'id' => $id
   );

 

Só mudei a última chave do array (id)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Intão.. é que na verdade o o $id não está num loop ele usa um implode('),(', $valores) no $valores = rage(1,10),

que faz a sequencia numérica (1),(2,),(3),(4),(5),(6),(7),(8),(9),(10)

 

$valores = range( 1 , 10 );
$sql = sprintf( 'INSERT INTO tabela(numero) VALUES (%s)', implode( '), (' , $valores ) );
$DB->query( $sql );

print_r($sql) // INSERT INTO tabela(numero) VALUES (1),(2,),(3),(4),(5),(6),(7),(8),(9),(10)' isso irá inserir todos ao mesmo tempo no bd.

 

tentei adaptar esse exemplo a minha necessidade pois tenho mais campos na tabela

 

$valores = range( 1 , 10 );

$array = array(
'unidade_id'=>'1',
'usuario_id'=>'1',
'usuario_tri_id'=>'1',
'servico_id'=>'1',
'prioridade_id'=>'1',
'status'=>'0',
'sigla_senha'=>'A',
'num_senha'=>'1',
'nm_cli'=>'1',
'num_local'=>'1',
'num_senha_serv'=>''
);
$test = implode("),(".implode(",", $array)."",$valores); // $array dados das outras tabelas $valores controla o indice de cada dado inserido na tabela
print_r ($test);

 

Banco de dados

---------------------------------------------------------------------------------------------------------------------------------------------------

unidade_id, usuario_id, usuario_tri_id, servico_id, prioridade_id, status, sigla_senha, num_senha, nm_cli, num_local, num_senha_serv

---------------------------------------------------------------------------------------------------------------------------------------------------

1 1 1 1 1 0 A 1 1 1 1

1 1 1 1 1 0 A 2 1 1 1

1 1 1 1 1 0 A 3 1 1 1

1 1 1 1 1 0 A 4 1 1 1

---------------------------------------------------------------------------------------------------------------------------------------------------

 

Não sei se deu pra entender rsrsrs

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.