Jump to content


Loko da Web

Member Since 13/12/2008
Offline Last Active 27/09/2010, 20:41
-----

Topics I've Started

Repeticao Na Info

24/08/2010, 22:08

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 sao 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 sao 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 qto ON.

A ideia e quando um produto tem as mesmas caracteristicas no caso o numero 01, permanecem apenas o ON e nao apareca o OFF tbem.

Entao peco ajuda d todos pra fazer a condicao IF corretamente.

Www.Echoe.Com.Br

22/06/2010, 11:54

Bom dia !

Gostaria da opiniao do pessoal sobre esse portifolio que desenvolvi. Agradeço as criticas, opinioes e elogios de cada um.

www.echoe.com.br

IPB Skin By Virteq