Boa noite.
Tenho um bd com 2 tabelas. A primeira (serv_os) tem as colunas id, fk_os e fk_servico a segunda (prod_os) tem as colunas id, fk_os e agora eu criei a coluna fk_serv. A coluna fk_serv vai ser preenchida com o valor id da primeira coluna. Fiz o seguinte update entre as tabelas:
UPDATE prod_os
JOIN serv_os ON serv_os.fk_os= prod_os.fk_os
SET prod_os.fk_serv = serv_os.id
WHERE prod_os.fk_os=serv_os.fk_os;
Até aqui tudo bem, porém, fiquei com o seguinte problema. Muitas vezes existem vários serviços na primeira tabela, por exemplo id=100 produto A, id=101 produto B, porém o fk_os é o mesmo . Ai na coluna fk_serv aparece sempre o id do produto A. Nesse caso duas vezes. O produto B, C,...etc não aparece.
Não consegui nenhum comando, já que o join é pela coluna fk_os, que fizesse o update mudar o ponteiro para o serviço B,C,etc.
Se alguém puder me ajudar eu agradeço.
Boa Noite, alguem poderia me ajudar em uma situação, estou tetnando gravar os dados da tela abaixo, porem nao estou conseguindo montar o jeito certo pra ele gravar todos os dados de uma vez
Ola. Tenho uma tabela no 3 campos que sao "LIVRO, POS, PAGINA" ao qual a logica e a seguinte: cada livro tem 100 paginas cada pagina tem 30 posiçoes tenho 8,364 registros pra inserir chegando a 100 paginas com 30 posiçoes cada passa para o livro 2 e como fazer o update na tabela inserindo nos campos LIVRO = 1, POS de 0 a 30 e PAGINA 1 para cada 30 registros logos apos pagina 2 ?
estou tentando fazer assim:
<?php
> ini_set('max_execution_time', 2000); $pdo = new
> DO(DB_SERVER.":host=".DB_HOST.";dbname=".DB_BASE,DB_USER,DB_PASSWORD);
> $sql = $pdo->prepare("SELECT count(*) FROM tabela2018");
> $sql->execute();
> $livro = 1;
> foreach($sql as $obj){
> $variavel = $obj[0];
> ceil((float)$variavel/100);
> $qtdlaco = ceil((float)$variavel/100);
> for ($id = 1; $id <= 35; $id++) {
> for($L=1; $L < $qtdlaco; $L++) {
> for ($P = 0; $P <= 30; $P++) {
> $sql = $pdo->prepare("UPDATE tabela2018 SET LIVRO = :LIVRO, POS = :POS, PAGINA = :PAGINA WHERE idtabela2018 = $id");
> $sql->bindValue(':LIVRO', $livro);
> $sql->bindValue(':POS', $P);
> $sql->bindValue(':PAGINA', $L);
> $sql->execute();
> }
> }
> }
>}
?>
mas na tebela so aparece:
LIVRO POS PAGINA
1 30 83
1 30 83
1 30 83
e nao como deveria :
LIVRO POS PAGINA
1 0 1
1 1 1
1 2 1
Tenho uma tabela com a coluna média (valor decimal) .
cod | media | cod_sala
1 1,98 5
2 2,34 2
3 1,32 5
4 2,51 3
5 1,65 1
6 2,78 5
7 4,95 4
8 0,75 4
9 1,23 1
10 1,63 2
11 1,55 3
Preciso no select MYSQL ou dentro do foreach multiplicar os valores do campo média, de acordo com o fitro por cod_sala
Exemplo pelo cod_sala: 5
Sendo o resultdo final: 1,98 * 1,32 * 2,78 = 7,26