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

INCLUIR MULTIPLAS LINHAS NO BANCO DE DADOS


diego_dias

Pergunta

Srs. boa noite 

 

Estou tentando criar um procedure que vai fazer a leitura do meu insert e vai lançar no banco de dados 1 ou mais linhas a partir de um laço de repetição .

Estou declarando uma variavel i e que por padrão receberá o valor 10. Ou seja, após enviar meu formulario, em teoria o comando incluirá outras 10 linhas, porém não estou tendo sucesso. Alguém pode me ajudar ? 

 

CREATE PROCEDURE myproc()

DECLARE i int DEFAULT 10;

BEGIN 
    
    
WHILE i <=10 DO      

        $resultado = "INSERT INTO tb_lancamentos (conta_contabil, parcelamento, dt_vencimento, valor_nota, created) VALUES ('$conta_contabil', '$parcelamento', '$dt_vencimento', '$valor_nota', NOW())";     
        $resultado_usuario = mysqli_query($conn, $resultado);

SET i=i+1;

END WHILE;

END;

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

A sintaxe do stored procedure do MySQL é assim:

CREATE DEFINER=`root`@`localhost` PROCEDURE `MyProc`()
BEGIN
declare i int;
set i = 1;
loop_label: loop
	if i > 10 then leave loop_label; end if;
	insert into tb_lancamentos (conta) values ("caixa");
    set i = i+1;
end loop;
END

Se você comparar com o seu código, você notará que eu usei uma string "caixa" ao invés de uma variável, mas o resultado é o mesmo, ou seja, o procedimento vai registrar dez vezes a mesma conta. Aqui o problema é de lógica: ninguém registra dez vezes o mesmo lançamento.

Mas se a ideia é fazer vários lançamentos diferentes, o melhor é usar o PHP, assim:

<?php
$lançamentos=["caixa","banco","despesa","receita"];
$mysqli=new mysqli("localhost","root","","astudy");
foreach($lançamentos as $lançamento){
    $query=$mysqli->query("insert into tb_lancamentos (conta) values ('$lançamento')");}
echo ($query) ? "ok" : $mysqli->error;

Por aqui você pode ver que é bem mais fácil usar a gramática do PHP do que a gramática do stored procedures do MySQL.

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,5k
×
×
  • Criar Novo...