F-gos 0 Denunciar post Postado Setembro 27, 2010 Pessoal boa tarde!!!Seguinte estou criando um sistema de catalogo de produtos e ja esta funcionando corretamente com os produtos cadastrados e tals... mas agora surgiu a necessidade de fazer produtos relacionados tipo quando clica em ver detalhes de um produto, na pagina de detalhes aparecem outros 3 produtos que será relacionado a aquele produtos no detalhe. deu para entender?Como posso fazer para implantar esse processo ja que tenho tudo pronto e funcionando.. os cadastros de produtos.. o banco mysql etals??? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 27, 2010 Uma idéia: TABLE produto_relacionado id_produto INT, id_produto_relacionado INT :lol: Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Setembro 28, 2010 william bom dia! cara eu até pensei em fazer dessa forma mas não tenho muita experiencia com o php.você poderia me orientar como fazer..tipo.. crio a tabela... como relacionar no cadastro pra salvar na tabela e prncipalmente como ler a tabela e pegar os resultados.. só me passe +- os caminhos a seguir que me viro por aqui.. se tiver um topico ja ajuda.OK! fico no aguardo Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Setembro 28, 2010 Eu acho melhor você fazer: - Uma tabela com as categorias dos produtos (camiseta, sapato, bermuda, televisão, microondas...) - Um campo extra na tabela de produtos que indique a categoria à qual o item pertence. Então, quando buscar as informações para listar os detalhes de um produto, resgate também esse campo da categoria e faça uma busca limitada (LIMIT) e aleatória (RAND) na tabela de produtos quando combinarem (WHERE) esses ID's. Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Setembro 28, 2010 Eu acho melhor você fazer: - Uma tabela com as categorias dos produtos (camiseta, sapato, bermuda, televisão, microondas...) - Um campo extra na tabela de produtos que indique a categoria à qual o item pertence. Então, quando buscar as informações para listar os detalhes de um produto, resgate também esse campo da categoria e faça uma busca limitada (LIMIT) e aleatória (RAND) na tabela de produtos quando combinarem (WHERE) esses ID's. Bruno o problema é que não poderá ser randomico o negócio.. os produtos são jóias folheadas então cada peça terá seus itens relacionados. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Setembro 28, 2010 - Uma tabela com as categorias dos produtos (camiseta, sapato, bermuda, televisão, microondas...) Tags ;) Bruno o problema é que não poderá ser randomico o negócio.. os produtos são jóias folheadas então cada peça terá seus itens relacionados. A aleatoriedade é para o caso de poder listar um máximo de 5 produtos mas existirem 50 relacionados. Quem deve trabalhar os filtros são as tags. Quanto mais baterem, mais relacionados os produtos estão, ex: - Jóias - Semi-jóias - banhadas - folheadas - prata - ouro - 24K - 18K Compartilhar este post Link para o post Compartilhar em outros sites
Maykonn 6 Denunciar post Postado Setembro 28, 2010 - Uma tabela com as categorias dos produtos (camiseta, sapato, bermuda, televisão, microondas...) Tags ;) Bruno o problema é que não poderá ser randomico o negócio.. os produtos são jóias folheadas então cada peça terá seus itens relacionados. A aleatoriedade é para o caso de poder listar um máximo de 5 produtos mas existirem 50 relacionados. Quem deve trabalhar os filtros são as tags. Quanto mais baterem, mais relacionados os produtos estão, ex: - Jóias - Semi-jóias - banhadas - folheadas - prata - ouro - 24K - 18K Pois é, assim fica melhor, porém, creio que seja um pouco mais complicado para ele fazer, já que disse que não possui experiência em PHP. Mas realmente é o jeito mais elegante. Da maneira citada pelo William, abaixo, é como a maioria faria. É como eu faria se tempo fosse o problema relacionado à dificuldade. Uma idéia: TABLE produto_relacionado id_produto INT, id_produto_relacionado INT :lol: Agora depende de você, F-gos, decidir por qual caminho irá seguir. Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Setembro 28, 2010 pessoal como ja tenho o sistema meio q pronto.... o melhor a fazer é seguir a formula do william Uma idéia:TABLE produto_relacionadoid_produto INT, id_produto_relacionado INTsó preciso saber como proceder no cadastro pra gravar no banco e como ler as infos da tabela para exibir os itens relacionados.se alguem tiver um tutorial... ou algum exemplo pareciso .. eu sigo aqui.. OK! Obrigado pela atenção de todos. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 28, 2010 checkbox cara... no formulário de produto, você lista os outros produtos através de checkboxs.. ai o cara marca os produtos que ele quiser relacionar aqueles. trabalhando com arrays <input type="checkbox" name="produto_relacionado[]" value="15" /> <input type="checkbox" name="produto_relacionado[]" value="7" /> onde o value, é o ID dos outros produtos com isso, basta um foreach(), pelo array $_POST['produto_relacionado'], inserindo linha por linha na tabela: `produto_relacionado` cada produto, terá várias linhas para ele. Ou seja, se o produto de id=1, tiver os produtos, 3, 15 e 7 relacionados, você terá na tua tabela algo assim: TABLE produto_relacionado id_produto INT, id_produto_relacionado INT 1 , 3 1, 15 1, 7 entendeu ? com isso, você ganha uma flexibilidade (talvez desnecessária), te atrelar o 1 ao 3, mas não o 3 ao 1. (exemplo) Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Novembro 5, 2010 william bruno.. beleza eu ja tenho os dados gravados no banco e talsss igaul você mostrou no exemplo... agora preciso exibir os itens relacionados na pagina de detalhes do produto e tbm criar uma pagina para excluir os relacionados tipo excluir apenas 1 por vez. como ler a tabela de relacioandos e exibir os itens?? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 5, 2010 agora você faz um JOIN entre a de produtos, e a de relacionamento. e faz um WHERE id_produto = produto_que_está_sendo_exibido Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Novembro 5, 2010 cara você pode me explicar como fazer i join... eu to lendo uns artigos sobre isso aqui mas até agora não entendi como fazer o join?? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 5, 2010 SELECT * FROM produto INNER JOIN produto_relacionado ON produto.id = produto_relacionado.id_produto WHERE produto.id = 2 vai mostrar todos os produtos relacionados com o produto de id=2 entendeu ? Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Novembro 5, 2010 william beleza então meu select fica assim: SELECT * FROM produtos INNER JOIN produto_relacionado ON produtos.ID_Produto = produto_relacionado.id_relacionado WHERE produtos.ID_Produto = $_GET['$ID_Produto'];"; correto.. dessa mesma forma eu posso usar o comando para excluir 1 item dos relacionados??? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 5, 2010 qndo você for excluir, deve excluir da tabela produto_relacionado DELETE FROM produto_relacionado WHERE id_produto_relacionado = 15 AND id_produto = 2vai excluir a relação que o produto 15 tinha com o produto 2 Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Novembro 5, 2010 correto..... cara to tentando montar aqui a exibição dos dados utilizando o select que você me passou mas não to conseguindo fazer... se pode dar uma força... ja aproveitando a sua boa vontade... Tenho que exibir o cogido e a foto do produto relacionado.. minha tabela de produtos ta assim: ID_Produto Codigo Descricao Descricao_en Descricao_es Valor1 Valor2 Foto_P Foto_G Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 5, 2010 coloca o codigo php da tua tentativa Compartilhar este post Link para o post Compartilhar em outros sites
Carlos A Gomes 0 Denunciar post Postado Novembro 6, 2010 Gente toda essa complicação para que?? Criar outra tabela? usar um select soh? cara, falo por experiencia própria, o melhor é criar uma tabela CATEGORIAS e fazer o relacionamento com a tabela PRODUTOS; supondo que você passe o codigo do produto a ser exibido via url 1) pegar os dados do produto a ser exibido: $id = $_GET["id"]; sql = "SELECT * FROM produtos WHERE id_produto = " . $id; $produto = mysql_fetch_array( mysql_query($sql) ); 2) uma vez com os dados do produto nas mãos, você pode fazer outro select e pegar outros produtos da mesma categoria: $limite = 3; $sql2 = "SELECT * FROM produtos WHERE categoria = " . $produto["categoria"] . " ORDER BY RAND() LIMIT " . $limite; $res = mysql_query($sql2); pronto, agora a variável $res contem os produtos relacionados ao produto que está sendo exibido. abraço. Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Novembro 8, 2010 william bom dia... estou postando meu codigo para analise.... dessa forma não consegui listar os produtos relacioandos: <?php $SQL="SELECT * FROM produtos INNER JOIN produto_relacionado ON produtos.ID_Produto = produto_relacionado.id_relacionado WHERE produtos.ID_Produto=".$_GET["$ID_Produto"]; mysql_query($SQL); $resultado = mysql_query($SQL); $linhas = mysql_num_rows($resultado); ?> <table width="500" border="1"> <?php for($x=0; $x<$linhas;$x++){ $id=mysql_result($resultado,$x,"ID_Produto"); $relacionado=mysql_result($resultado,$x,"id_relacionado"); ?> <tr> <td><?php echo $relacionado; ?></td> <td width="18%"><div align="center"><a href="listagem_relacionado.php?id_relacionado=<?php echo $relacionado; // ?>" target="_parent">excluir</a></div></td> </tr> <?php } ?> mas ainda depois de listar os relacioandos eu precisaria ir na tabela de produtos e buscar o nome e codigo dos relacioandos para exibir tbm.... ou tentar o exemplo que o amigo carlos sugeriu.. william / carlos... <?php $SQL = "SELECT * FROM produtos WHERE ID_Produto = " . $ID_Produto; $produto = mysql_fetch_array( mysql_query($SQL) ); // $limite = 10; $sql2 = "SELECT * FROM produto_relacionado WHERE ID_Produto = " . $produto["ID_Produto"] . " ORDER BY RAND() LIMIT " . $limite; $resultado = mysql_query($sql2); $linhas = mysql_num_rows($resultado); ?> <table width="500" border="1"> <?php for($x=0; $x<$linhas;$x++){ $id=mysql_result($resultado,$x,"ID_Produto"); $relacionado=mysql_result($resultado,$x,"id_relacionado"); ?> <tr> <td><?php echo $relacionado; ?></td> <td width="18%"><div align="center"><a href="pro_relacionar.php?id_relacionado=<?php echo $relacionado; // ?>" target="_parent">excluir</a></div></td> </tr> <?php } ?> OK! consegui exibir os dados com o codigo que o carlos passou.. mas esta exibindo apenas os IDs dos relacioandos... eu preciso exibir o codigo e se possivel a imagem do produto.. ai eu terei que fazer uma outra consulta na tabela de produtos com os resultados de relacioandos?????? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 8, 2010 não.. vamos com calma.. categoria não é a mesma coisa que 'relacionados'. digamos que eu tenha o pó de café, cafeteira. o café tá na categoria grãos, e outro na categoria eletrodomésticos. são categorias completamente diferentes, porém são produtos relacionados. por isso que a metodologia do RAND(), e pesquisando por 'categoria', não se aplica corretamente na solução desse tipo de problema. @F-gos, execute assim: <?php //cadê a conexão com o banco de dados ? echo '<pre>'; var_dump( $_GET ); echo '</pre>'; $id_produto = (int)$_GET['id_produto']; $sql="SELECT * FROM produtos INNER JOIN produto_relacionado ON produtos.ID_Produto = produto_relacionado.id_relacionado WHERE produtos.ID_Produto={$id_produto}"; echo $sql, '<br />'; $query = mysql_query( $sql ) or die( mysql_error() ); echo '<table width="500" border="1">'; while( $dados = mysql_fetch_assoc( $query ) ) { echo '<tr> <td>'.$dados['id_relacionado'].'</td> <td width="18%"><div align="center"><a href="listagem_relacionado.php?id_relacionado='.$dados['id_relacionado'].'" target="_parent">excluir</a></div></td> </tr>'; } echo '</table>'; Compartilhar este post Link para o post Compartilhar em outros sites