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

As variáveis no MySQL


Frank K Hosaka

Pergunta

Hoje eu tenho uma tbdiario com 14.000 registros, quando o correto era ter apenas a metade. Eu criei um campo chamado débito e outro chamado crédito, quando o correto era ter apenas um campo chamado valor.

Hoje usei as variáveis no MySQL, e gostei a beça, consegui pegar dois registros errados e criar um registro certo, assim:

set @lcto=1;
select @dia:=dia, @contad:=conta, @valor:=debito, @hist:=hist from tbdiariobk where docto=1;
select @contac:=conta from tbdiariobk where docto=2;
insert into tbdiario (lcto,dia,contad,contac,valor,hist) values (@lcto,@dia,@contad,@contac,@valor,@hist);

A estrutura da tabela errada é essa:

`tbdiariobk` (
  `docto` mediumint NOT NULL AUTO_INCREMENT,
  `dia` date DEFAULT NULL,
  `conta` mediumint DEFAULT NULL,
  `debito` decimal(13,2) DEFAULT NULL,
  `credito` decimal(13,2) DEFAULT NULL,
  `hist` varchar(100) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL,
  PRIMARY KEY (`docto`))

A estrutura da tabela certa é essa:

`tbdiario` (
  `idiario` mediumint NOT NULL AUTO_INCREMENT,
  `lcto` mediumint NOT NULL,
  `dia` date DEFAULT NULL,
  `contad` mediumint DEFAULT NULL,
  `contac` mediumint DEFAULT NULL,
  `valor` decimal(13,2) DEFAULT NULL,
  `hist` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`idiario`)
) 

Agora, consertar 14.000 registros errados em 7.000 certos, isso é coisa que eu pretendo resolver com a ajuda do PHP.

 

Sem título 2.png

Sem título.png

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Já consegui criar 100 lançamentos contábeis. Mas é bem trabalhoso. Para facilitar o trabalho usei o PHP, criei cinco códigos:

 

astudy.php
---------------------------
<?php // um débito e um crédito genérico
$mysqli=new mysqli("localhost","root","","astudy");
for($lcto=86;$lcto<=100;$lcto++){
    // base=182
    $docto1=$lcto*2+10;
    $docto2=$docto1+1;
    $query=$mysqli->query("select * from tbdiariobk where docto=$docto1");
    $row=$query->fetch_assoc();
    $dia=$row['dia'];
    $contad=$row['conta'];
    $valor=$row['debito'];
    $hist=$row['hist'];
    $query2=$mysqli->query("select * from tbdiariobk where docto=$docto2");
    $row2=$query2->fetch_assoc();
    $contac=$row2['conta'];
    if($valor!=$row2['credito']){echo "valores divergentes em ".$row2['docto'];exit;}
    $sql="insert into tbdiario (lcto,dia,contad,contac,valor,hist) values ($lcto,'$dia',$contad,$contac,$valor,'$hist')";
    $query3=$mysqli->query($sql);
    $row3=$query->fetch_assoc();}

astudy2.php
----------------------------------
<?php // multiplos débitos
$mysqli=new mysqli("localhost","root","","astudy");
$lcto=74;
for($docto1=154;$docto1<=158;$docto1++){
    $query=$mysqli->query("select * from tbdiariobk where docto=$docto1");
    $row=$query->fetch_assoc();
    $dia=$row['dia'];
    $contad=$row['conta'];
    $valor=$row['debito'];
    $hist=$row['hist']; 
    $sql="insert into tbdiario (lcto,dia,contad,valor,hist) values ($lcto,'$dia',$contad,$valor,'$hist')";
    $query3=$mysqli->query($sql);
    $row3=$query->fetch_assoc();}

astudy3.php
--------------------------------------------------------
<?php // um crédito
$mysqli=new mysqli("localhost","root","","astudy");
$lcto=85;
$docto1=575;
$query=$mysqli->query("select * from tbdiariobk where docto=$docto1");
$row=$query->fetch_assoc();
$dia=$row['dia'];
$contac=$row['conta'];
$valor=$row['credito'];
$hist=$row['hist']; 
$sql="insert into tbdiario (lcto,dia,contac,valor,hist) values ($lcto,'$dia',$contac,$valor,'$hist')";
$query3=$mysqli->query($sql);
$row3=$query->fetch_assoc();

astudy4.php
-----------------------------------------------
<?php // um débito
$mysqli=new mysqli("localhost","root","","astudy");
$lcto=85;
$docto1=575;
$query=$mysqli->query("select * from tbdiariobk where docto=$docto1");
$row=$query->fetch_assoc();
$dia=$row['dia'];
$contad=$row['conta'];
$valor=$row['debito'];
$hist=$row['hist']; 
$sql="insert into tbdiario (lcto,dia,contad,valor,hist) values ($lcto,'$dia',$contad,$valor,'$hist')";
$query3=$mysqli->query($sql);
$row3=$query->fetch_assoc();

astudy5.php
------------------------------------------------------------
<?php // um débito e um crédito particular
$mysqli=new mysqli("localhost","root","","astudy");
$lcto=68;
$docto1=141;
$docto2=142;
$query=$mysqli->query("select * from tbdiariobk where docto=$docto1");
$row=$query->fetch_assoc();
$dia=$row['dia'];
$contad=$row['conta'];
$valor=$row['debito'];
$hist=$row['hist'];
$query2=$mysqli->query("select * from tbdiariobk where docto=$docto2");
$row2=$query2->fetch_assoc();
$contac=$row2['conta'];
if($valor!=$row2['credito']){echo "valores divergentes em ".$row2['docto'];exit;}
$sql="insert into tbdiario (lcto,dia,contad,contac,valor,hist) values ($lcto,'$dia',$contad,$contac,$valor,'$hist')";
$query3=$mysqli->query($sql);
$row3=$query->fetch_assoc();

 

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...