security Posted August 17, 2012 at 11:34 AM Report #472564 Posted August 17, 2012 at 11:34 AM Bom dia, Eu estou a fazer uma loja online com o intuito de aprender um pouco mais e de poder desenvolver as minhas bases de programação. No entanto deparei-me com um problema no qual não estou a conseguir resolver, o problema é o seguinte: eu estou a listar as categorias dos produtos (e.g.: tablets, portateis, Desktops, Acessorios, etc.), e quero que por baixo das categorias sejam postados todos os produtos referentes a essa categoria... Eu pensei em utilizar a estrutura for no entanto nao estou a conseguir aplicar... abaixo vou enviar o codigo todo, embora um pouco extenso vou tentar comenta-lo de forma a nao ser muito confuso. <div class="center_content"> <!-- Pesquisa categorias --> <?php /* Pesquisa das categorias */ $sqlCat = "SELECT * FROM tb_categoria"; $rsCat = mysql_query($sqlCat); $contaCat = mysql_num_rows($rsCat); $cat = mysql_fetch_array($rsCat); for ($cat=0;$cat<$contaCat;$cat++) { while ($a = $cat) $nomeCat = $a['nomeCategoria']; echo '<div class="center_title_bar">'.$nomeCat.'</div>'; // Mostra o nome da categoria /* Pesquisa de produtos e fdaz a sua listagem */ $sqlProd = "SELECT ID_produto, tb_marca.nomeMarca, modelo, PVP, PVPant, desconto, img FROM tb_produto, tb_marca WHERE tb_produto.ID_marca=tb_marca.ID_marca AND ID_categoria=1 ORDER BY dataRegisto DESC LIMIT 3"; $rsProd = mysql_query($sqlProd); $contaProdutos = mysql_num_rows($rsProd); if ($contaProdutos != 0){ $produto = mysql_fetch_array($rsProd); /* Neste ponto coloquei um for pois com a estrutura while como tinha o browser deixava de responder pois entrava em ciclo infinito */ foreach ($produto as $prod){ $ID_produto = $prod['ID_produto']; $PVPant = $prod['PVPant']; echo '<div class="prod_box"> <div class="center_prod_box"> <div class="product_title"><a href="?id=1&product_id='.$ID_produto.'">'.$prod['nomeMarca'].' '.$prod['modelo'].'</a></div> <div class="product_img"><a href="?id=1&product_id='.$ID_produto.'"><img src="images/p3.jpg" alt="" title="" border="0" /></a></div>'; if ($PVPant == 0 || $PVPant == ''){ echo '<div class="prod_price"><span class="price">'.$prod['PVP'].'</span></div>'; } else { echo '<div class="prod_price"><span class="reduce">'.$PVPant.'</span> <span class="price">'.$prod['PVP'].'</span></div>'; } echo '</div> <div class="prod_details_tab"> <a href="buy.html" class="prod_buy">Add to Cart</a> <a href="?id=1&product_id='.$ID_produto.'" class="prod_details">Details</a> </div> </div> '; } } else { /* Se nao existirem produtos registados */ echo '<div class="center_prod_box"> <div class="product_title">Não existem produtos registados!</div> <div class="product_img"></div> <div class="prod_price"></div> </div>'; } echo '</div>'; //} } // End FOR ?> Aqui está o codigo todo, a maior parte é html dentro do php... Cumprimentos, Miguel Pinto "Innovation distinguishes between a leader and a follower." Steve jobs.
pikax Posted August 17, 2012 at 11:38 AM Report #472565 Posted August 17, 2012 at 11:38 AM basta fazeres uma query e fazer um group by categoria, depois so tens que te preocupar em mostrar algo a dizer que e' uma nova categoria Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
security Posted August 17, 2012 at 12:29 PM Author Report #472570 Posted August 17, 2012 at 12:29 PM (edited) nao me lembrei disso... Ou seja, posso fazer um SELECT * FROM tb_categoria e dentro deste while faço entao o codigo abaixo... SELECT ID_produto, tb_marca.nomeMarca, modelo, PVP, PVPant, desconto, img FROM tb_produto, tb_marca WHERE tb_produto.ID_marca = tb_marca.ID_marca GROUP BY ID_categoria Edited August 17, 2012 at 12:30 PM by security "Innovation distinguishes between a leader and a follower." Steve jobs.
pikax Posted August 17, 2012 at 01:10 PM Report #472576 Posted August 17, 2012 at 01:10 PM parece-me que tens ciclos desnecessarios no codigo Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
security Posted August 19, 2012 at 09:55 AM Author Report #472820 Posted August 19, 2012 at 09:55 AM pois acredito que sim... ainda estou a estaudar como vou fazer para listar a dinamicamente as categorias com os respetivos produtos. "Innovation distinguishes between a leader and a follower." Steve jobs.
HappyHippyHippo Posted August 19, 2012 at 01:51 PM Report #472832 Posted August 19, 2012 at 01:51 PM (edited) $sql = "SELECT * FROM tb_categoria"; $rs_cat = mysql_query($sql); while ($cat = mysql_fetch_assoc($rs_cat)) { echo "<div class='center_title_bar'>{$cat['nomeCategoria']}</div>"; $sql = "SELECT * FROM tb_produto INNER JOIN tb_marca ON tb_produto.ID_marca = tb_marca.ID_marca WHERE ID_categoria='{$cat['ID_categoria']}'"; $rs_prod = mysql_query($sql); if (mysql_num_rows($rs_prod) > 0) { while ($prod = mysql_fetch_assoc($rs_prod)) { // .. preset product } } else { // .. no product } Edited August 19, 2012 at 01:52 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
security Posted August 28, 2012 at 05:33 PM Author Report #473845 Posted August 28, 2012 at 05:33 PM é isso mesmo... obrigado "Innovation distinguishes between a leader and a follower." Steve jobs.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now