Jump to content


Photo

Duvida De While


  • Faça o login para participar
4 replies to this topic

#1 ronaldosdb

ronaldosdb

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 11/04/2007, 05:41

ola turma
Depois de tanto quebrar a cabeca e nao conseguir o resultado resolvi postar aki, quem sabe alguem tem uma luz
Eu tenho uma tabela produtos

id_produto
nome
preco

Estou listando todos os produtos da tabela PRODUTOS e na frente de cada um deles colocando um checkbox

Estou fazendo isso dessa maneira, e ate aki nao houve erros:
<?php
$query_prod1="select * from produtos order by id_produto ASC";
$query_selecionado1=mysql_query($query_prod1);
echo mysql_error();				
while($produtos = mysql_fetch_array($query_selecionado1)) {
$id_produto_selecionado1 = $produtos[id_produto];
$produto_selecionado1 = $produtos[nome];
$preco_selecionado1 = number_format($produtos[preco],2,",",".");

print "<input name=\"selecionado[]\" id=\"selecionado\" type=\"checkbox\" value=\"$id_produto_selecionado1\" checked/><font class=\"not1\"> ";
print $list++;
print "<b> $produto_selecionado1 --></b> R$ $preco_selecionado1";
print "<br></font>";

}
?>


Acontece, que eu tenho uma tabela produtos_relacionados
id_produto
id_produo_relacionado

Essa tabela serve para que eu armazene um catalogo de relacionamento entre os produtos para minha loja virtual, por exemplo, o produto 132 da tabela anterior fica vinculado...(relacionado) ao produto 1. 50. 45 nessa tabela...etc
sendo que em cada linha eu faco algo mais ou menos assim

produto 132 - agora esta relacionado ao 1
produto 132 - agora esta relacionado ao 50
produto 132 - agora esta relacionado ao 45
produto 140 - agora esta relacionado ao 37
produto 140 - agora esta relacionado ao 25


Sendo assim, eu recupero ovalor dessa tabela posteriormente...por exemplo
select * from produtos_relacionados where id produto = 132

Ate ai td bem, mas eu nao estou conseguindo fazer o seguinte:

Agora, como eu posso fazer para que somente os produtos cujo campo id_produto_relacionado da tabela PRODUTOS_RELACIONADOS venham com a propriedade marcada?

Se alguem tiver uma luz, agradeco mto;
Valeu
Ronaldo

#2 Guilherme Luiz

Guilherme Luiz

    Normal

  • Usuários
  • 78 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 11/04/2007, 06:38

não li direito mas se a sua duvida é como pegar valor de varios checkbox faça o seguinte

no nome do check box coloca o nome dele como se fosse um array name="id[]"

ai dps eh só puxar com um foreach
$i=0;
foreach($_POST[id] as $id[]){
mysql_query=("SELECT * FROM tabela WHERE id=($del[$r_inic]) LIMIT 1");
$i++;
}

dps eu vvolto aki e leio melhor sua duvida... mas pelo pouco que li me pareceu ser isso...
just its a lie when the truth is found !

#3 ronaldosdb

ronaldosdb

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 11/04/2007, 09:18

num eh isso....
É assim: eu to passando o parametro $_GET[registro]

Dai vo no banco e listo todos os produtos e coloco um checkbox na frente deles

select * from produtos where valido = s

So que eu queria trazer ja selecionado (checked) os produtos cujo id_produto na tabela PRODUTOS_RELACIONADOS seja igual a $_GET[registro] e id_produto_relacionado na tabela produtos_relacionados.
Exemplo:
se $_GET[registro] é igual a 20

devo ir na tabela produtos relacionados e procurar todas as linhas cujo id_produto é igual a 20

la eu vo ter assim

prod 20 - relaciona-se com 50
prod 20 - relaciona-se com 47
prod 20 - relaciona-se com 48

entaum os produtos que tem checkbox 50, 47 e 48 deveriam vir marcados ja, ou seja, checados....

#4 Guilherme Luiz

Guilherme Luiz

    Normal

  • Usuários
  • 78 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 11/04/2007, 13:13

pode ficar um pouco carregado mas usa if tipo...


$sql = mysql_query("SELECT * FROM produtos_relacionado") or die (mysql_error());
while($x = mysql_fetch_array($sql)){
if($_GET[registro] == $x[id_produto]){
echo "$x[id_produto] está relacionado com o produto $x[id_produto_relacionado]";
}else{
echo "nenhum produto relacionado com esta ID";
}
}

eh que eu naum entendi direito essa sua explicação das tabelas e campos... fiquei meio confuso mas pelo que eu entendi eh só fazer uns ifs pra checar ! se o $_GET for igual ao ID_PRODUTO_RELACIONADO no bd você mostra o resultado com o check box jah selecionado se não estiver igual vc faz um else mostrando outro resultado... por exemplo um checkbox naum selecionado !
just its a lie when the truth is found !

#5 ronaldosdb

ronaldosdb

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 13/04/2007, 10:54

Veja, acho que assim voces podem me ajudar melhor...

Com esse while abaixo eu trago todos os produtos...


<?php
include "conexao.php";
				$sql_produtos="
					select 
						* from produtos 
							where valido='s'
					";
					$query_produtos=mysql_query($sql_produtos);
					$list = 1;
					while($resultado_produtos=mysql_fetch_array($query_produtos))
					{
					
					
					print "<input type=\"checkbox\" name=\"selecionado[]\" value=\"$resultado_produtos[id_produto]\"> &nbsp;";
					print $list++;
					print "&nbsp;- $resultado_produtos[nome] <br>";
					
					}
					
?>


E com esse outro eu trago os produtos relacionados ao produto $_GET[registro] - por exemplo 132



<?php

				$sql_produtos_rel="
					select 
						* from produtos_relacionados
							where id_produto='$_GET[registro]'
					";
					$query_produtos_rel=mysql_query($sql_produtos_rel);
					$list = 1;
					while($resultado_produtos_rel=mysql_fetch_array($query_produtos_rel))
					{
					
					
					print "<input type=\"checkbox\" name=\"selecionado[]\" value=\"$resultado_produtos_rel[id_produto]\"> &nbsp;";
					print $list++;
					print "&nbsp;- $resultado_produtos_rel[id_produto_relacionado] <br>";
					
					}
					
?>


Entaum, percebem, na primeira listagem de produtos, os checkbox dos produtos cujo id sao 22, 21, 18, 16, 10, 8, 4, 2 , 1 deveriam vir checados (marcados) pois eles estao vinculados ao produto $_GET[registro] 132 na tabela produtos_relacionados


la eu tenho algo assim
132 - relacionado com 22
132 - relacionado com 21


Espero ter conseguido explicar....se alguem puder me ajudar, to precisando mesmo..valeu pela ajuda
ronaldo

alguem tem uma luz?
valeu
ronaldo

Attached Files


Edição feita por: ronaldosdb, 12/04/2007, 10:51.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq