Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

phpnoob

[Resolvido] Tabela de itens com categorias agrupados com php e mysql

Recommended Posts

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.

 

table.png?1440360949

 

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.

table2.jpg?1440361512

 

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
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

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

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

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:
cat_tab.PNG?1440479345

sera que preciso melhorar o script usando function, class ou array ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É 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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.