Adriano_Vicente Postado Setembro 16, 2004 Denunciar Share Postado Setembro 16, 2004 Olá pessoal, gostaria de fazer uma listagem de produtos do meu e-commerce mais ou menos como a listagem das Lojas Americanas, Submarino, etc.Mas o esquema seria o seguinte:o código PHP faz o loop e joga três itens por linha.-----IMAGEM----- -----IMAGEM----- -----IMAGEM-----Desc. do Produto----Desc do Produto----Desc. do Produto-----IMAGEM----- -----IMAGEM----- -----IMAGEM-----Desc. do Produto----Desc do Produto----Desc. do Produto-----IMAGEM----- -----IMAGEM----- -----IMAGEM-----Desc. do Produto----Desc do Produto----Desc. do ProdutoEspero que possam entender, Agradeço qualquer ajuda! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Setembro 16, 2004 Denunciar Share Postado Setembro 16, 2004 Um tutorialzinho....você sabe o que você tem que conseguir é que os numeros fiquem nesta ordem:1 2 34 5 67 8 9Supanhamos que você tenha 7 itens. você terá que dividir por 3 que é o total de colunas que teremos, para ver quantas linha iremos ter, desde então 7/3=2.3, então para o loop seria 2 linhas, mais na verdade são 3, então você pode usar a função "ceil" que arredonda para cima um valor fracionário.então...$total_itens=7;$loop_ate=ceil($total_itens / 3);for($i=1; $i<=$loop_ate; $i++){$direito = ($i * 3);$centro = ($direito - 1);$esquerdo = ($centro - 1);echo $esquerdo . " | " . $centro . " | " . $direito;}Eu somente distribuir cada número para sua devida coluna.Agora o que você precisa fazer é uma condição para o que forem maior que 7 não apreça, boa sorte ai. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriano_Vicente Postado Setembro 18, 2004 Autor Denunciar Share Postado Setembro 18, 2004 Obrigado amigo, consegui algo muito bom até agora com o seu script, mas o problema é o seguinte:O número total de produtos deve ser o número total de registros do banco de dados, para que apareçam todos os produtos, e quando o número de linhas ultrapassa o número de registros dá um erro, pois não tem mais produtos para serem apresentados naquelas tabelas.Vou mostrar o código: <?include("conexao.php");$sqlcad = "SELECT * FROM produtos WHERE opcao='sim' ORDER BY preço"; $result = mysql_query($sqlcad,$db); $q_regi = mysql_num_rows($result); $loop_ate=ceil($q_regi / 3);print"<table border=\"0\" width=\"100%\">";for($i=1; $i<=$loop_ate; $i++){$direito = ($i * 3);$centro = ($direito - 1);$esquerdo = ($centro - 1);$db_codigo1=mysql_result($result,$esquerdo,"codigo");$db_nome1=mysql_result($result,$esquerdo,"nome");$db_preco1=mysql_result($result,$esquerdo,"preço");$db_codigo2=mysql_result($result,$centro,"codigo");$db_nome2=mysql_result($result,$centro,"nome");$db_preco2=mysql_result($result,$centro,"preço");$db_codigo3=mysql_result($result,$direito,"codigo");$db_nome3=mysql_result($result,$direito,"nome");$db_preco3=mysql_result($result,$direito,"preço");print"<tr> <td> <center> <div style=\"width: 115px; align: center;\"> <a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo1','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo1 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br> <a href=\"detalhes.php?codigo=$db_codigo1\"><b><font size=\"2\">$db_nome1</font></b></a><br> <font color=\"#ff0000\"><a href=\"detalhes.php?codigo=$db_codigo1\">R$ $db_preco1</a></font></td> </div> <td> <center> <div style=\"width: 115px; align: center;\"> <a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo2','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo2 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br> <a href=\"detalhes.php?codigo=$db_codigo2\"><b><font size=\"2\">$db_nome2</font></b></a><br> <font color=\"#ff0000\"><a href=\"detalhes.php?codigo=$db_codigo2\">R$ $db_preco2</a></font> </div> </td> <td> <center> <div style=\"width: 115px; align: center;\"> <a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo3','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo3 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br> <a href=\"detalhes.php?codigo=$db_codigo3\"><b><font size=\"2\">$db_nome3</font></b></a><br> <font color=\"#ff0000\"><a href=\"detalhes.php?codigo=$db_codigo3\">R$ $db_preco3</a></font> </div> </td> </tr>";}print"</table>"; ?>Espero que possam entender, Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriano_Vicente Postado Setembro 20, 2004 Autor Denunciar Share Postado Setembro 20, 2004 ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Setembro 21, 2004 Denunciar Share Postado Setembro 21, 2004 Pegou rápido em...Veja eu disse para você fazer uma condição para a tabela do meio e a direita, pra funcionar certinho.Veja eu modifiquei o seu arquivo:<?include("conexao.php");$sqlcad = "SELECT * FROM produtos WHERE opcao='sim' ORDER BY preço";$result = mysql_query($sqlcad,$db);$q_regi = mysql_num_rows($result);$loop_ate=ceil($q_regi / 3);print"<table border=\"0\" width=\"100%\">";for($i=1; $i<=$loop_ate; $i++){$direito = ($i * 3);$centro = ($direito - 1);$esquerdo = ($centro - 1);$db_codigo1=mysql_result($result,$esquerdo,"codigo");$db_nome1=mysql_result($result,$esquerdo,"nome");$db_preco1=mysql_result($result,$esquerdo,"preço");$db_codigo2=mysql_result($result,$centro,"codigo");$db_nome2=mysql_result($result,$centro,"nome");$db_preco2=mysql_result($result,$centro,"preço");$db_codigo3=mysql_result($result,$direito,"codigo");$db_nome3=mysql_result($result,$direito,"nome");$db_preco3=mysql_result($result,$direito,"preço");print"<tr><td><center><div style=\"width: 115px; align: center;\"><a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo1','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo1 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br><a href=\"detalhes.php?codigo=$db_codigo1\"><b><font size=\"2\">$db_nome1</font></b></a><br><font color=\"#ff0000\"><a href=\"detalhes.php?codigo=$db_codigo1\">R$ $db_preco1</a></font></td></div><td>";if($centro<=$q_regi>){print"<center><div style=\"width: 115px; align: center;\"><a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo2','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo2 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br><a href=\"detalhes.php?codigo=$db_codigo2\"><b><font size=\"2\">$db_nome2</font></b></a><br><font color=\"#ff0000\"><a href=\"detalhes.php?codigo=$db_codigo2\">R$ $db_preco2</a></font></div></td>";}print"</td><td>";if($direito<=$q_regi){print"<center><div style=\"width: 115px; align: center;\"><a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo3','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo3 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br><a href=\"detalhes.php?codigo=$db_codigo3\"><b><font size=\"2\">$db_nome3</font></b></a><br><font color=\"#ff0000\"><a href=\"detalhes.php?codigo=$db_codigo3\">R$ $db_preco3</a></font></div>";}print"</td></tr>";}print"</table>";?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriano_Vicente Postado Setembro 21, 2004 Autor Denunciar Share Postado Setembro 21, 2004 Valeu Gladisson, você me ajudou muitissimo mesmo, mas o problema ainda continua, estou tentando modificar um pouco o código, mas ainda não consegui algo 100%, mesmo assim agradeço pelo que fez!Valeu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriano_Vicente Postado Setembro 30, 2004 Autor Denunciar Share Postado Setembro 30, 2004 Valeu Amigo, eu consegui fazer funcionar perfeitamente.Muito Obrigado Mesmo!Valeu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Setembro 30, 2004 Denunciar Share Postado Setembro 30, 2004 Estamos ai! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriano_Vicente Postado Outubro 1, 2004 Autor Denunciar Share Postado Outubro 1, 2004 Olá pessoal, eu fiz a listagem e deu certo, funcionou perfeitamente com o código do nosso amido Gladisson, mas eu ainda preciso de algo a mais:Não sei se vocês vão entender, eu preciso fazer este mesmo esquema mais com um certo número de produtos por página, vejam o código:******************************************************************<?include("conexao.php");$sqlcad = "SELECT * FROM produtos WHERE grupo='$grupo' ORDER BY codigo"; $result = mysql_query($sqlcad,$db); $totProd = mysql_num_rows($result);if($totProd==0){print"<font color=\"#aaaaaa\"><center><br><br><br><br><br><br>Nenhum produto encontrado no grupo $grupo...</center></font>";}elseif($totProd > 0){print"<font color=\"#aaaaaa\"><center>Encontrado(S) $totProd produto(s) no grupo $grupo...</center></font>";$counter = 0;if($dir=="") {$dir="Próximo";}$maxPag = 9;if($offset==0){$offset=0;}if($dir=="Próximo") { if($totProd > $maxPag) { $counter = $offset; $offset += $maxPag; $num=$offset; if($num > $totProd) {$num = $totProd;}}else {$num=$totProd;}}elseif($dir=="Anterior") { if($totProd > $maxPag) { $offset -= $maxPag; if($offset<0) {$offset=0;} $counter=$offset-$maxPag; if($counter<0) {$counter=0;} $num=$counter+$maxPag; }else {$num=$totProd;}}print"<table border=\"0\" width=\"100%\" align=\"center\">";$maxPag1=4; while($counter<$maxPag1) { print"<tr>"; //*********************************************************** $u_regi=$totProd-1;$direito = ($counter * 3 -1);$centro = ($direito - 1);$esquerdo = ($centro - 1);print"<tr align=\"center\">";if($esquerdo <= $u_regi){if($esquerdo >= 0){$db_codigo1=mysql_result($result,$esquerdo,"codigo");$db_nome1=mysql_result($result,$esquerdo,"nome");$db_preco1=mysql_result($result,$esquerdo,"preço");print" <td align=\"center\"> <center> <div style=\"width: 110px; align: center;\"> <a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo1','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo1 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br> <a href=\"detalhes.php?codigo=$db_codigo1\"><b><font size=\"1\" face=verdana>$db_nome1</font></b></a><br> <a href=\"detalhes.php?codigo=$db_codigo1\"><font size=\"1\" face=verdana color=\"#ff0000\">R$ $db_preco1</font></a><br> <a href=\"detalhes.php?codigo=$db_codigo1\"><img src=\"imagem/detalhes.gif\" border=\"0\"></a> </div> </center> </td> "; } }if($centro <= $u_regi){if($centro >= 0){$db_codigo2=mysql_result($result,$centro,"codigo");$db_nome2=mysql_result($result,$centro,"nome");$db_preco2=mysql_result($result,$centro,"preço");print" <td align=\"center\"> <center> <div style=\"width: 110px; align: center;\"> <a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo2','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo2 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br> <a href=\"detalhes.php?codigo=$db_codigo2\"><b><font size=\"1\" face=verdana>$db_nome2</font></b></a><br> <a href=\"detalhes.php?codigo=$db_codigo2\"><font size=\"1\" face=verdana color=\"#ff0000\">R$ $db_preco2</font></a><br> <a href=\"detalhes.php?codigo=$db_codigo1\"><img src=\"imagem/detalhes.gif\" border=\"0\"></a> </div> </td>"; } }if($direito <= $u_regi){if($direito >= 0){$db_codigo3=mysql_result($result,$direito,"codigo");$db_nome3=mysql_result($result,$direito,"nome");$db_preco3=mysql_result($result,$direito,"preço");print" <td align=\"center\"> <center> <div style=\"width: 110px; align: center;\"> <a href=\"#\" onClick=\"MM_openBrWindow('ver.php?codigo=$db_codigo3','Visualização','scrollbars=yes,resizable=yes,width=420,height=420')\"><img src=visualiza.php?codigo=$db_codigo3 height=\"80\" border=\"0\" alt=\"Clique para ampliar\"></a><br> <a href=\"detalhes.php?codigo=$db_codigo3\"><b><font size=\"1\" face=verdana>$db_nome3</font></b></a><br> <a href=\"detalhes.php?codigo=$db_codigo3\"><font size=\"1\" face=verdana color=\"#ff0000\">R$ $db_preco3</font></a><br> <a href=\"detalhes.php?codigo=$db_codigo1\"><img src=\"imagem/detalhes.gif\" border=\"0\"></a> </div> </td>"; } } print"</tr>"; //*******************************************************$counter++; } $pri=$offset-8;print"<tr><td colspan=\"3\"><br><center>";if($totProd > $maxPag) {print"<b><font color=\"#aaaaaa\">Página de produtos de $pri a $num<br>COUNTER: $counter OFFSET: $offset NUM: $num</font></b><form action=\"$PHP_SELF\" method=\"POST\">\n"; if($offset>$maxPag){print"<input type=\"submit\" value=\"Anterior\" name=dir>\n";} if($offset<$totProd){print"<input type=\"submit\" value=\"Próximo\" name=dir>\n";} print"<input type=\"hidden\" value=\"$offset\" name=\"offset\"><input type=\"hidden\" value=\"$grupo\" name=\"grupo\">";print"</form></center>";}print"</td></tr>";print "</table>";}mysql_close();?> *************************************************************Acho que o código não está muito difícil de entender, eu preciso listar apenas 9 itens por página e preciso que quando clicar no botão Próximo apareça a outra página de produtos, vamos dizer que a primeira página seja do registro 0 ao 9, a segunda deve ser do registro 10 ao 19 e assim por diante.Agradeço qualquer ajuda, Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Outubro 1, 2004 Denunciar Share Postado Outubro 1, 2004 você terá que fazer páginas:$pagina = $_GET['pagina'];if(!$pagina) $pagina = 1;$sqlcad = "SELECT * FROM produtos WHERE grupo='$grupo' ORDER BY codigo LIMIT ".(($pagina - 1) * 9).", 9";teste assim: seusite.com/teste.php?pagina=1, depois 2 assim vai! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriano_Vicente Postado Outubro 1, 2004 Autor Denunciar Share Postado Outubro 1, 2004 Como eu faço a seleção correta dos registros nas páginas?ou eu devo colocar o link da página da seguinte forma:grupo.php?grupo=acessorios&pagina=1grupo.php?grupo=acessorios&pagina=2e assim por diante? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Outubro 1, 2004 Denunciar Share Postado Outubro 1, 2004 Acho que agora o negócio é paginação!Tente busca sobre páginação aqui! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriano_Vicente Postado Outubro 1, 2004 Autor Denunciar Share Postado Outubro 1, 2004 Valeu a ajuda mais uma vez Gladisson!Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriano_Vicente Postado Outubro 2, 2004 Autor Denunciar Share Postado Outubro 2, 2004 Quero agradecer mais uma vez o nosso amigo Gladisson, pois consegui algo muito legal que estava precisando.Valeu Gladisson! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Adriano_Vicente
Olá pessoal, gostaria de fazer uma listagem de produtos do meu e-commerce mais ou menos como a listagem das Lojas Americanas, Submarino, etc.
Mas o esquema seria o seguinte:
o código PHP faz o loop e joga três itens por linha.
-----IMAGEM----- -----IMAGEM----- -----IMAGEM-----
Desc. do Produto----Desc do Produto----Desc. do Produto
-----IMAGEM----- -----IMAGEM----- -----IMAGEM-----
Desc. do Produto----Desc do Produto----Desc. do Produto
-----IMAGEM----- -----IMAGEM----- -----IMAGEM-----
Desc. do Produto----Desc do Produto----Desc. do Produto
Espero que possam entender, Agradeço qualquer ajuda!
Link para o comentário
Compartilhar em outros sites
13 respostass 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.