phpnoob 0 Denunciar post Postado Agosto 23, 2015 Boa Tarde pessoal, preciso de uma ajuda de vcs Estou querendo criar uma tabela onde tenho as categorias e os itens, fiz uma imagem para explicar melhor a minha dificuldade. preciso agrupar os itens e suas categorias usando o php e mysql mais nao consegui, quando eu listo os itens eles nao ficam em baixo das categorias correspondentes igual na imagem abaixo. Lembrando que estou usando <table para criar as linhas e colunas, nao sei se e possivel fazer oque eu estou querendo dessa forma se alguem conseguir me ajudar ficarei grato Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 23, 2015 Mostre como está seu banco de dados e seu script. Um simples ORDER BY no seu SELECT deve resolver Compartilhar este post Link para o post Compartilhar em outros sites
phpnoob 0 Denunciar post Postado Agosto 23, 2015 Obrigado por responder amigo, no meu DB so tem as duas tabelas com os dados que esta na imagem acima Tabela dos itens tem "id, nome_item, valor_item, cat_id" e na tabela das categorias tem "id, nome_cat" estou usando o script abaixo para listar os itens <?php $query = sprintf("SELECT * FROM tipo"); $dados = mysql_query($query, $config) or die(mysql_error()); $tipo = mysql_fetch_object($dados); $total = mysql_num_rows($dados); ?> o script da tabela e esse <table width="100%" bgcolor="#FFFFFF" class="tableizer-table"> <tr> <td colspan="2" class="centralizado" style="padding:20px; background-color:#CFCFCF;"><strong> categoria 2 </strong></td> </tr> <?php while ($itens = mysql_fetch_object($dados)){ ?> <tr> <td><?=$itens->nome_item;?></td> <td><?=$itens->valor_item;?></td> </tr> <?php } ?> </table> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 23, 2015 Você tentou adicionar o ODER BY, como sugeri? Qual foi o resultado? PS: funções mysql_* estão obsoletas desde o PHP 5.5 e serão removidas do PHP em breve. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql Compartilhar este post Link para o post Compartilhar em outros sites
phpnoob 0 Denunciar post Postado Agosto 23, 2015 tentei sim amigo, ele ordena por categoria certinho mais a lista continua como mostrei na segunda imagem. eu preciso que primeiro o script mostre a categoria e em baixo exiba a lista de itens desta categoria e assim por diante. vou tentar melhorar o script para descrever com mais clareza a minha dificuldade. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 24, 2015 É possível ordenar por dois campos. No seu caso, você precisa ordenar pela categoria e, depois pelo item. Ou seja: SELECT campos FROM tabela ORDER BY categoria, nome_item Compartilhar este post Link para o post Compartilhar em outros sites
phpnoob 0 Denunciar post Postado Agosto 25, 2015 Boa noite amigo, dei uma melhorada no meu script parece que ficou do jeito que eu queria. Aqui o script que lista as categorias: <?php include ('config/config.php'); $query = sprintf("SELECT * FROM categorias"); $dados = mysql_query($query, $config) or die(mysql_error()); $cat = mysql_fetch_object($dados); $total = mysql_num_rows($dados); ?> Aqui o script da tabela junto com script que lista os itens: <table width="100%" class="tableizer-table" bgcolor="#FFFFFF"> <?php do { ?> <tr> <td colspan="2" class="centralizado" style="padding:20px; background-color:#CFCFCF;"> <strong><?=$cat->nome_cat;?></strong></td> </tr> <?php $query_item = sprintf("SELECT * FROM itens WHERE cat_id = ".$cat->id); $dados_item = mysql_query($query_item, $config) or die(mysql_error()); $item = mysql_fetch_object($dados_item); do { ?> <tr> <td><?=$item->nome_item;?></td> <td><?=$item->valor_item;?></td> </tr> <?php } while($item = mysql_fetch_object($dados_item)); ?> <?php } while($cat = mysql_fetch_object($dados)); ?> </table> ficou exatamente como na imagem abaixo: sera que preciso melhorar o script usando function, class ou array ? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 25, 2015 É importante melhorar o script para torná-lo portável. Duas observações iniciais: 1. Usar MySQLi ou PDO. Funções mysql_* estão obsoletas desde o PHP 5.5 e serão removidas do PHP em breve. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql 2. Usar tags completas. Ou seja, <?php em vez de <? e <?php echo $var; ?> em vez de <?= $var ?>. Veja: http://rberaldo.com.br/boas-praticas-programacao-php/#tags Essas e outras dicas de PHP: http://www.ultimatephp.com.br/guia/ Compartilhar este post Link para o post Compartilhar em outros sites
phpnoob 0 Denunciar post Postado Agosto 26, 2015 Obrigado pela ajuda amigo, vou dar uma melhorada no script Estou marcando o tópico como resolvido . Compartilhar este post Link para o post Compartilhar em outros sites