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

Sumar os dados extraidos das tabelas


mozack

Pergunta

Olá pessoal,

Estou a fazer um script que atualiza o estado de produtos (Ativo ou Inativo) consoante as quantidades por EAN.

Não tenho bem certeza de como fazer isso, mas essas 2 propriedades estão em tabelas diferentes que não atualizam automaticamente.

As minhas tabelas são: produtos e eans

Nos eans tem o id produto, ean e quantidade, na tabela produtos tem id produto, nome, ..., quantidade (total juntando os eans)

Neste momento, atrvés de um script sou capaz de atualizar as quantidades dos eans individualmente mas não consigo colocar o total na tabela produtos.

A minha estrutura:

TABELA PRODUTOS:

ID | Nome | Quantidade

TABELA EANS

ID | IDProduto | VALOR | Quantidade

O que queria era sumar todos os EAN em que o IDProduto é Igual ao ID (tabela Produtos) e que colocasse o total no campo Quantidade da tabela Produtos.

Já parti a cabeça, mas não faço ideia como fazer.

Até agora tenho:

$verificaStock = mysql_query(

"SELECT

v.*,

p.*

FROM eans v

LEFT JOIN produtos p ON p.ID = v.IDProduto

WHERE v.Quantidade > '0'");

A partir daqui, não sei como juntar todos os EANS que correspondem a determinado produto e que coloque o total de todos os eans na quantidade da tabela produtos.

Agradeço a vossa ajuda,

Obrigado

Mozack

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Boa Noite.

Você quer gravar na tabela ou apenas que apareça numa consulta?

Porque se você consegue numa, é só trasnferir para a outra.

Caso queira gravar, faça uma consulta UPDATE e grave na tabela desejada.

Uma pergunta: Qual o motivo para você querer a duplicidade de registro de informações?

Se você já possui gravado o valor que precisa em uma tabela, apenas chame-a:

$qtd = "SELECT p.nome, e.quantidade FROM produtos p, eans e WHERE e.idproduto=p.id AND e.quantidade >0 ORDER BY p.produto";

$exe_qtd = mysql_query($qtd);

Se você quer que apareça na tela:

WHILE($resul_qtd=mysql_fetch_array($exe_qtd)){PRINT"

<tr>

<td>$resul_qtd[nome]</td>

<td>$resul_qtd[quantidade]</td>

</tr>";

}

Abraços

}

Link para o comentário
Compartilhar em outros sites

  • 0
Boa Noite.

Você quer gravar na tabela ou apenas que apareça numa consulta?

Porque se você consegue numa, é só trasnferir para a outra.

Caso queira gravar, faça uma consulta UPDATE e grave na tabela desejada.

Uma pergunta: Qual o motivo para você querer a duplicidade de registro de informações?

Se você já possui gravado o valor que precisa em uma tabela, apenas chame-a:

$qtd = "SELECT p.nome, e.quantidade FROM produtos p, eans e WHERE e.idproduto=p.id AND e.quantidade >0 ORDER BY p.produto";

$exe_qtd = mysql_query($qtd);

Se você quer que apareça na tela:

WHILE($resul_qtd=mysql_fetch_array($exe_qtd)){PRINT"

<tr>

<td>$resul_qtd[nome]</td>

<td>$resul_qtd[quantidade]</td>

</tr>";

}

Abraços

}

Olá,

Obrigado pela resposta, mas talvez não me fiz entender. O que pretendo é que o script pegue todos os ean da tabela em que o id de produto seja igual e some a quantidade de cada EAN.

Vamos ver se consigo explicar:

Eu tenho o produto Camiseta Azul nos tamanhos XS(ean: 1), S(ean: 2), M(ean: 3), L(ean: 4), XL(ean: 5), cada uma tem por ex.: 10 quantidade.

Agora, na tabela MySql produtos tem o ID 1 - Camiseta Azul - Quantidade: ???

Na tabela EAN tem idproduto - 1 - EAN: 1 - Quantidade: 10; idproduto - 1 - EAN: 2 - Quantidade : 10 (....)

O que pretende é que o script pegue todos os EAN que pertençam ao produto 1 e que some as quantidades, no caso acima, 50. Depois, pega nesses 50 e insere na quantidade total da tabela produtos

Isto porquê, porque pretendo desactivar o produto que a quantidade é 0, mas como não tem como atualizar isso, todos os produtos ficam desativados.

Agradeço a ajuda e disponibilidade

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos ver se entendo:

Camiseta Manga/longa é um ID

As Cores Azul - Um EAN

Vermelho - um EAN

Ou seja, cores diferentes, ean diferente???

Caso seja:

Informe como se dispunha as duas tabelas que você irá usar e onde estã esta quantidade.

Mas ainda acho que a forma como te falei resolve este problema.

Pois segundo você, as quantidades estão na tabela ean.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Vamos ver se entendo:

Camiseta Manga/longa é um ID

As Cores Azul - Um EAN

Vermelho - um EAN

Ou seja, cores diferentes, ean diferente???

Caso seja:

Informe como se dispunha as duas tabelas que você irá usar e onde estã esta quantidade.

Mas ainda acho que a forma como te falei resolve este problema.

Pois segundo você, as quantidades estão na tabela ean.

Abraços

Olá,

Sim, cores diferentes, ean diferentes. No entanto, à pouco consegui fazer, custou mas foi, aqui fica o meu código:

$query = "SELECT vcproductid, SUM(vcstock) AS stock FROM [|PREFIX|]product_variation_combinations GROUP BY vcproductid

";

O meu problema é que não sabia que tinha como juntar dados numa query, com o SUM() e o Group BY consegui somar as quantidades totais de todos os eans (cores) que pertencem a determinado produto.

Agora o resto e actualizar a tabela produtos com a quantidade somada da tabela de eans, e isso já é mais simples pra mim.

De qualquer forma, obrigado pela ajuda!

Abraços

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,2k
    • Posts
      652k
×
×
  • Criar Novo...