Sql retorna linhas duplicadas

Enviada por Lacerda 
Lacerda
Sql retorna linhas duplicadas
07 de March de 2001 às 01:15PM
Desenvolvo um projeto de uma loja virtual de jóias que possue várias categorias brincos, anéis, pingentes, etc e alguns destes produtos possuem atributos como cor e tamanho (que é o caso dos anéis).
No final da compra eu tenho que mostrar o que foi comprado certo?Neste caso comprei um anel (cor preto e tamanho G) mas o sql me retorna estas linha duplicada abaixo:
Anel 009B Preto 1 R$ 58.00 R$ 58.00
Anel 009B G 1 R$ 58.00 R$ 58.00
O que tentei fazer foi o seguinte dar um group by no sql mas não deu certo pelo fato de que aparece uma só linha mas a informação fica incorreta pois o cliente precisa saber o seguinte:
Anel 009B Preto - G 1 R$ 58.00 R$ 58.00 ( que é a concatenação dos atributos)
Alguém poderia me ajudar como fazer isto concatenar os atributos????

Segue abaixo o sql que retorna as linhas duplicadas:

<?php
$dbt = new ps_DB;
$qt = "SELECT * FROM orders, order_item, product, product_attribute ";
$qt .= "WHERE orders.order_id='$order_id' ";
$qt .= "AND orders.order_id=order_item.order_id ";
$qt .= "AND product.product_id=order_item.product_id ";
$qt .= "AND order_item.product_id = product_attribute.product_id ";
$dbt->query($qt);
$i = 0;
while($dbt->next_record()) {
?>

Grata
Marcus vinicius
Re: Sql retorna linhas duplicadas
29 de March de 2001 às 11:10PM
Olah,

Sua query ta confusa demais, acho q vc nao precisa de * de todas as tabelas,
mas como nao sei nenhum dos campos aí vai

Solução para seu problema eh

<?php
$dbt = new ps_DB;
$qt = "SELECT * FROM orders, order_item, product, product_attribute ";
$qt .= "WHERE orders.order_id='$order_id' ";
$qt .= "AND order_item.order_id=orders.order_id ";
$qt .= "AND product.product_id=orders.order_id ";
$qt .= "AND product_attribute.product_id=orders.order_id ";
$dbt->query($qt);
$i = 0;
while($dbt->next_record()) {
?>
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.