Bom o cenario e o seguinte, o q estou tentando fazer é uma comparacao entre produtos, dentre suas caracteristicas.
Tenho 3 tabelas:
Nessa tabela e incluido o nome do produto
produtos
id nome
01 TV plasma 70
02 TV lcd 42
03 TV lcd 50
04 TV lcd 32
Nessa tabela e incluido todas as caracteristicas, aonde faco o cadastro das info.
info
id info
01 Compacto
02 Leve
03 HD
04 FULL HD
05 1366x768
06 1920x1080
07 Entrada HDMI
08 DTV
Nessa tabela são cadastrados as info junto ao produto
info_produto
id info id_produto
01 Compacto 04
02 HD 04
03 1366x768 04
04 1920x1080 01
05 FULL HD 01
06 DTV 01
07 1920x1080 03
08 FULL HD 03
Na tabela acima, cm podem ver os produtos que recebem as info:
04 TV lcd 32: Compacto, HD, 1366x768
01 TV plasma 70: 1920x1080, FULL HD, DTV
03 TV lcd 50: 1920x1080, FULL HD 03
Agora a consulta:
<table>
<tr>
<td>
Caracteristicas
</td>
<?
//Aqui faco o select dos produtos, usando o IN para pegar varios registros
$sql = mysql_query("SELECT * FROM produtos WHERE id IN ($id)") or die (mysql_error());
while ($rs = mysql_fetch_array($sql)) {
?>
<td>
<table>
<?
//Aqui faco o select da info
$sql_info = mysql_query("SELECT * FROM info ORDER BY info ASC") or die (mysql_error());
while ($rs_info = mysql_fetch_array($sql_info)) {
//Aqui faco o select das info dos produtos usando o IN
$sql_info_prod = mysql_query("SELECT * FROM info_produto WHERE id_produto IN ($id)")or die (mysql_error());
while ($rs_info_prod = mysql_fetch_array($sql_info_prod)) {
//aqui faco a verificacao se o ID do produto e igual ao da info e as info são iguais, mostra o ON
if($rs['id'] == ($rs_info_prod['id_produto']) AND $rs_info['info'] == ($rs_info_prod['info'])) {
echo '<tr><td>';
echo '<img src="on.jpg" alt="" /> '.$rs_info_prod['info'].'';
echo '</td></tr>';
//aqui faco a verificacao caso o ID seja diferente e as info iguais, mostrara o OFF
}elseif ($rs['id'] != ($rs_info_prod['id_produto']) AND $rs_info['info'] == ($rs_info_prod['info'])) {
echo '<tr><td>';
echo '<img src="off.jpg" /> '.$rs_info_prod['info'].'';
echo '</td></tr>';
}
}
}?>
</table>
</td>
<?}?>
</tr>
</table>
01 ) Um exemplo pegamos o ID: '01','03', sera imprimido dessa maneira:
Caracterisiticas:
01 | 03
ON 1920x1080 | OFF 1920x1080
OFF 1920x1080 | ON 1920x1080
ON FULL HD | OFF FULL HD
OFF FULL HD | ON FULL HD
ON DTV | OFF DTV
02) Agora ID: '03','02'
02 | 03
OFF 1920X1080 | ON 1920X1080
OFF FULL HD | ON FULL HD
03) Agora ID: '04','03','02'
02 | 03 | 04
OFF Compacto | OFF Compacto | ON Compacto
OFF HD | OFF HD | ON HD
OFF FULL HD | On FULL HD | OFF FULL HD
OFF 1366X768 | OFF 1366X768 | ON 1366X768
OFF 1920X1080 | ON 1920X1080 | OFF 1920X1080
Cm podem ver a comparacao numero 02 e 03 ficaram corretas, exceto o numero 01 que repetiu tanto OFF quanto ON.
A ideia e quando um produto tem as mesmas caracteristicas no caso o numero 01, permanecem apenas o ON e não apareca o OFF também.
então peco ajuda d todos pra fazer a condicao IF corretamente.
Pergunta
Loko da Web
Bom o cenario e o seguinte, o q estou tentando fazer é uma comparacao entre produtos, dentre suas caracteristicas.
Tenho 3 tabelas:
Nessa tabela e incluido o nome do produto
produtos
Nessa tabela e incluido todas as caracteristicas, aonde faco o cadastro das info.info
Nessa tabela são cadastrados as info junto ao produto
info_produto
Na tabela acima, cm podem ver os produtos que recebem as info:
04 TV lcd 32: Compacto, HD, 1366x768
01 TV plasma 70: 1920x1080, FULL HD, DTV
03 TV lcd 50: 1920x1080, FULL HD 03
Agora a consulta:
01 ) Um exemplo pegamos o ID: '01','03', sera imprimido dessa maneira:
Caracterisiticas:
01 | 03
ON 1920x1080 | OFF 1920x1080
OFF 1920x1080 | ON 1920x1080
ON FULL HD | OFF FULL HD
OFF FULL HD | ON FULL HD
ON DTV | OFF DTV
02) Agora ID: '03','02'
02 | 03
OFF 1920X1080 | ON 1920X1080
OFF FULL HD | ON FULL HD
03) Agora ID: '04','03','02'
02 | 03 | 04
OFF Compacto | OFF Compacto | ON Compacto
OFF HD | OFF HD | ON HD
OFF FULL HD | On FULL HD | OFF FULL HD
OFF 1366X768 | OFF 1366X768 | ON 1366X768
OFF 1920X1080 | ON 1920X1080 | OFF 1920X1080
Cm podem ver a comparacao numero 02 e 03 ficaram corretas, exceto o numero 01 que repetiu tanto OFF quanto ON.
A ideia e quando um produto tem as mesmas caracteristicas no caso o numero 01, permanecem apenas o ON e não apareca o OFF também.
então peco ajuda d todos pra fazer a condicao IF corretamente.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.