Usfe 8 Denunciar post Postado Junho 6, 2012 olá boa tarde, estou com um problema aqui de lógica... é o seguinte eu tenho em uma tabela no banco onde eu cadastrado a categoria dos produtos "calça", "camisa", "sapatos"... ai eu criei outra tabela aonde eu cadastro os produtos, nessa tabela tambem tem um campo categoria onde eu relaciono uma com a outra. "calça"-"Jeans", "camisa"-"Polo", "sapatos"-"italianos"..... o meu problema é na hora de puxar tipo eu crio o laço e listo as categorias... <?php while($listar_categoria = mysql_fecth_assoc($sql_categoria)){ ?> Categoria: <?php echo $listar_categoria['categoria']; ?> <?php while($listar_produto = mysql_fecth_assoc($sql_produto)){ ?> Produdo:<?php echo $listar_produto['produto']; ?> <?php } } ?> eu gostaria que ficasse dessa maneira: categoria: Sapatos Produto: Preto Produto: Marrom Produto: Branco categoria: Camisa Produto: Azul Produto: Branca Produto: Vermelha Produto: Preta dessa forma :D bom não sei quase nada praticamente de php é notavel :/ mas se alguem poder me ajudar.. fico grato :D Compartilhar este post Link para o post Compartilhar em outros sites
Wingdings 20 Denunciar post Postado Junho 6, 2012 cria uma tabela para categoria e outra tabela com cores, na cores vai ter uma coluna que se relaciona com a de categoria Exemplo: Categoria ID - CATEGORIA 1 - Sapatos 2 - Camisa 3 - ... Cores ID - COR - CATEGORIA 1 - Preto - 1 2 - Marrom - 1 3 - Branca - 1 4 - Azul - 2 5 - Branca- 2 6 - Vermelha - 2 7 - Preta - 2 Algo assim :P Compartilhar este post Link para o post Compartilhar em outros sites
bastard2003 4 Denunciar post Postado Junho 6, 2012 teu $sql_produto esta recebendo o parametro de qual categoria ele tem q buscar? Compartilhar este post Link para o post Compartilhar em outros sites
Usfe 8 Denunciar post Postado Junho 6, 2012 cria uma tabela para categoria e outra tabela com cores, na cores vai ter uma coluna que se relaciona com a de categoria Exemplo: Categoria ID - CATEGORIA 1 - Sapatos 2 - Camisa 3 - ... Cores ID - COR - CATEGORIA 1 - Preto - 1 2 - Marrom - 1 3 - Branca - 1 4 - Azul - 2 5 - Branca- 2 6 - Vermelha - 2 7 - Preta - 2 Algo assim :P foi exatamente assim que eu fim é que não expliquei direito só que o problema é na hora de puxar e fazer o laço no php não ta dando certo... :/ teu $sql_produto esta recebendo o parametro de qual categoria ele tem q buscar? provavelmente não :P acho que nunca fiz algo tão complexo como isso sei lá... mas acho que o que esta faltando é isso o meu $sql_produto passar algum parametro.. mas como faço isso? Compartilhar este post Link para o post Compartilhar em outros sites
Usfe 8 Denunciar post Postado Junho 6, 2012 Fiz dessa forma agora.... <?php while($listar_categoria = mysql_fecth_assoc($sql_categoria)){ $categoria = $listar_categoria['categoria']; ?> Categoria: <?php echo $categoria; ?> <?php $sql_produto = mysql_query("SELECT * FROM produtos WHERE categoria = '$categoria'")or die(mysql_error()); while($listar_produto = mysql_fecth_assoc($sql_produto)){ $produto = $listar_produto['produto']; ?> Produdo:<?php echo $produto; ?> <?php } } ?> quase deu certo só que não aparece todos os produtos, somente os da primeira categoria o restante não aparece.. :s Compartilhar este post Link para o post Compartilhar em outros sites
Jhon Paulo 7 Denunciar post Postado Junho 6, 2012 Posta o nome e a estrutura das duas tabelas? Compartilhar este post Link para o post Compartilhar em outros sites
Usfe 8 Denunciar post Postado Junho 6, 2012 POSTA O NOME E A ESTRUTURA DAS DUAS TABELAS? mysql_query("CREATE TABLE categoria (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), categoria VARCHAR(30), age INT)") or die(mysql_error()); mysql_query("CREATE TABLE produto (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), produto VARCHAR(30), categoria VARCHAR(30) age INT)") or die(mysql_error()); bom as tabelas são normais não vejo o problema aqui.... Compartilhar este post Link para o post Compartilhar em outros sites
Jhon Paulo 7 Denunciar post Postado Junho 7, 2012 o que seria armazenado em age? coluna categoria na tabela categoria eu até entendo que pode ser a descrição da categoria; mas oq seria categoria na tabela produto? Uma refência pra tabela categoria? Compartilhar este post Link para o post Compartilhar em outros sites
Usfe 8 Denunciar post Postado Junho 7, 2012 o que seria armazenado em age? coluna categoria na tabela categoria eu até entendo que pode ser a descrição da categoria; mas oq seria categoria na tabela produto? Uma refência pra tabela categoria? Bom creio que as duas tabelas não sejam a dificuldade são tabelas comuns o meu problema é na hora de puxar os dados não ta dando certo os meus laços de repetição.... Compartilhar este post Link para o post Compartilhar em outros sites
Usfe 8 Denunciar post Postado Junho 7, 2012 poxa quase ninguem tem ajudado... Compartilhar este post Link para o post Compartilhar em outros sites
Jhon Paulo 7 Denunciar post Postado Junho 7, 2012 Se você explicasse quais dados estão sendo armazenados na tabela dava pra te ajudar a exibi-la ou propor um novo estilos pras tabelas, pois os dados já viriam formatados direto do banco de dados e não precisariamos organiza-la posteriormente com php.. CategoriaID - CATEGORIA 1 - Sapatos 2 - Camisa 3 - ... Cores ID - COR - CATEGORIA 1 - Preto - 1 2 - Marrom - 1 3 - Branca - 1 4 - Azul - 2 5 - Branca- 2 6 - Vermelha - 2 7 - Preta - 2 agora se sua tabela estiver realmente como essa citada acima pode fazer o seguinte: select cores.id, cores.cor, categoria.categoria from cores INNER JOIN categoria ON cores.categoria = categoria.id GROUP BY categoria.categoria Compartilhar este post Link para o post Compartilhar em outros sites
Usfe 8 Denunciar post Postado Junho 7, 2012 Se você explicasse quais dados estão sendo armazenados na tabela dava pra te ajudar a exibi-la ou propor um novo estilos pras tabelas, pois os dados já viriam formatados direto do banco de dados e não precisariamos organiza-la posteriormente com php.. Ok vou Tentar Explicar oque eu quero fazer, não tenho grandes conhecimentos ainda amigo mas lá vai é algo simples bom eu quero fazer um sistema que eu gerencie produtos, até ai tudo bem.. esses produtos são roupas calçados, jóias e etc. ai eu preciso separar esses produdos pro tipo na hora de fazer o relatório tipo assim em uma tabela eu cadastro as minhas categorias ex: Sapato, Calça, Jaquetas.... e em outra tabela eu cadastro os produtos, ex: sapato social, calça jean, jaqueta de couro.... ai eu relaciono esses produtos com o ID das categorias tudo de boa, tipo pra fazer isso com um filtro é tranquilo eu coloco o filtro do ID e tranquilo... só que eu preciso listar tudo isso numa só pagina e ai que está o problema não consigo formata com os laços de repetição... quero que exiba dessa forma: Ex: Categoria: Sapatos Produto: sapato social Produto: sapato esportivo Categoria: Calça Produto: Jeans Produto: Social e etc...... só que o erro que está dando é que todos os meus produtos ficam na primeira categoria.... numa postagem anterior eu coloquei o meu codigo... :/ sera que isso ajuda? as minhas tabelas no banco de dados é simples a de categoria é -> ID - CATEGORIA e a de produto é -> ID - PRODUTO - ID_CATEGORIA Compartilhar este post Link para o post Compartilhar em outros sites
Jhon Paulo 7 Denunciar post Postado Junho 7, 2012 <?PHP $q = mysql_query("SELECT produto.id, produto.produto, categoria.id FROM produto INNER JOIN categoria ON produto.id_categoria=categoria.id ORDER BY categoria.id"); ?> <table> <tr><th>ID</th><th>PRODUTO</th><th>CATEGORIA</th></tr> <?PHP for($p = mysql_fetch_array($q)) { echo ("<tr><td>".$p['id']."</td><td>".$p['produto']."</td><td>".$p['id_categoria']."</td></tr>"); } ?> </table> isso serve? Compartilhar este post Link para o post Compartilhar em outros sites
Usfe 8 Denunciar post Postado Junho 7, 2012 <?PHP $q = mysql_query("SELECT produto.id, produto.produto, categoria.id FROM produto INNER JOIN categoria ON produto.id_categoria=categoria.id ORDER BY categoria.id"); ?> <table> <tr><th>ID</th><th>PRODUTO</th><th>CATEGORIA</th></tr> <?PHP for($p = mysql_fetch_array($q)) { echo ("<tr><td>".$p['id']."</td><td>".$p['produto']."</td><td>".$p['id_categoria']."</td></tr>"); } ?> </table> isso serve? é amigo não deu certo infelizmente estarei postando meu código pra você da uma olhada.... SQL -- phpMyAdmin SQL Dump -- version 2.10.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tempo de Geração: Jun 07, 2012 as 07:11 PM -- Versão do Servidor: 5.0.45 -- Versão do PHP: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Banco de Dados: `cadastro` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `categoria` -- CREATE TABLE `categoria` ( `id` int(11) NOT NULL auto_increment, `categoria` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; -- -- Extraindo dados da tabela `categoria` -- INSERT INTO `categoria` (`id`, `categoria`) VALUES (1, 'Sapatos'), (2, 'Calça'), (3, 'Bolsa'); -- -------------------------------------------------------- -- -- Estrutura da tabela `produto` -- CREATE TABLE `produto` ( `id` int(11) NOT NULL auto_increment, `produto` varchar(30) NOT NULL, `id_categoria` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; -- -- Extraindo dados da tabela `produto` -- INSERT INTO `produto` (`id`, `produto`, `id_categoria`) VALUES (1, 'Tênis', '1'), (2, 'Botina', '1'), (3, 'Calça Jeans', '2'), (4, 'Calça Social', '2'), (5, 'Bolsa Escolar', '3'), (6, 'Bolsa Feminina', '3'), (7, 'Calça Feminina', '2'); php <?php function conecta_DB(){ mysql_connect('localhost', 'root', '')or trigger_error(mysql_error(),E_USER_ERROR); ; mysql_select_db('cadastro'); } ?> <html> <head><title>Pagina</title></head> <body> <?php conecta_DB() ?> <?php $categoria = mysql_query("SELECT * FROM categoria ORDER BY id"); $q = mysql_query("SELECT produto.id, produto.produto, categoria.id FROM produto INNER JOIN categoria ON produto.id_categoria=categoria.id ORDER BY categoria.id"); ?> <table> <?php for($i = 0; $i< 20; $i++){ while($y = mysql_fetch_assoc($categoria)) { echo ("<tr><td>".$y['categoria']."</td></tr>"); while($p = mysql_fetch_array($q)) { echo ("<tr><td>".$p['id']."</td><td>".$p['produto']."</td><td>".$p['id_categoria']."</td></tr>"); } } } ?> </table> </body> </html> Quase Deu Certo só que eu preciso que fique dessa forma amigo... <table> <tr><td><h3>Sapatos</h3></td></tr> <tr><td>Tenis</td></tr> <tr><td>Sapato Social</td></tr> <tr><td>Botina</td></tr> <tr><td><h3>Calça</h3></td></tr> <tr><td>Jeans</td></tr> <tr><td>Calça Social</td></tr> <tr><td><h3>Bolsa</h3></td></tr> <tr><td>Bolsa Feminina</td></tr> <tr><td>Bolsa Escolar</td></tr> <tr><td>...</td></tr> </table> Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 7, 2012 <?php $conn = mysql_connect( 'localhost', 'root', '' ); mysql_select_db( 'cadastro', $conn ); $sql = 'SELECT `p`.`id` , `p`.`produto` , `c`.`id` , `c`.`categoria` FROM `produto` `p` INNER JOIN `categoria` `c` ON ( `p`.`id_categoria` = `c`.`id` ) ORDER BY `c`.`id`'; $query = mysql_query( $sql, $conn ); $result = array( ); while( $row = mysql_fetch_assoc( $query ) ) { $result[ $row[ 'categoria' ] ][ ] = $row[ 'produto' ]; } echo '<table>'; foreach( $result as $categoria => $produtos ) { printf( '<tr> <td> <h3>%s</h3> </td> </tr>', $categoria ); foreach( $produtos as $produto ) { printf( '<tr> <td>%s</td> </tr>', $produto ); } } echo '</table>'; ?> Saída <table> <tr> <td> <h3>Sapatos</h3> </td> </tr> <tr> <td>Tênis</td> </tr> <tr> <td>Botina</td> </tr> <tr> <td> <h3>Calça</h3> </td> </tr> <tr> <td>Calça Social</td> </tr> <tr> <td>Calça Jeans</td> </tr> <tr> <td>Calça Feminina</td> </tr> <tr> <td> <h3>Bolsa</h3> </td> </tr> <tr> <td>Bolsa Escolar</td> </tr> <tr> <td>Bolsa Feminina</td> </tr> </table> Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Junho 7, 2012 Você aceita uma resposta que não seja do João Batista Neto? <_< Bom, muita coisa pra ler. Vou me ater apenas ao proposto no primeiro post, ok? A estrutura que eu criei para a resposta seria: -- phpMyAdmin SQL Dump -- version 3.4.5 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: Jun 08, 2012 at 01:36 AM -- Server version: 5.5.16 -- PHP Version: 5.3.8 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; -- -- Database: `imasters` -- -- -------------------------------------------------------- -- -- Table structure for table `products` -- CREATE TABLE IF NOT EXISTS `products` ( `tid` int(5) NOT NULL AUTO_INCREMENT, `pid` int(5) NOT NULL, `name` varchar(255) NOT NULL, PRIMARY KEY (`tid`), KEY `pid` (`pid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; -- -- Dumping data for table `products` -- INSERT INTO `products` (`tid`, `pid`, `name`) VALUES (1, 1, 'Jeans'), (2, 2, 'Polo'), (3, 1, 'Lycra'), (4, 2, 'Regata'), (5, 3, 'Italianos'), (6, 3, 'Com Salto?'); -- -------------------------------------------------------- -- -- Table structure for table `productscategories` -- CREATE TABLE IF NOT EXISTS `productscategories` ( `pid` int(5) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`pid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- Dumping data for table `productscategories` -- INSERT INTO `productscategories` (`pid`, `name`) VALUES (1, 'Calças'), (2, 'Camisas'), (3, 'Sapatos'); -- -- Constraints for dumped tables -- -- -- Constraints for table `products` -- ALTER TABLE `products` ADD CONSTRAINT `products_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `productscategories` (`pid`) ON DELETE NO ACTION ON UPDATE NO ACTION; A query utilizada: SELECT c.name as category, p.name as item FROM `productsCategories` c LEFT JOIN `products` p ON ( p.pid = c.pid ) WHERE p.pid = 1 E a saída: Array ( [0] => stdClass Object ( [category] => Calças [item] => Jeans ) [1] => stdClass Object ( [category] => Calças [item] => Lycra ) ) Não ficou exatamente como desejado, mas é aí que entra o PHP, caso contrário, tudo se resolveria diretamente no BD. Pra testar essa query eu usei a PDO e, por preferência pessoal setei o estilo PDO::FETCH_OBJ para PDOStatement::fetchAll() Isso por si só retorna tudo que você precisa para, com um loop, criar a estrutura desejada. Mas a PDO permite que múltiplos estilos sejam atribuídos ao mesmo tempo no processo de fetch E ela oferece um bem bacana chamado PDO::FETCH_GROUP que infelizmente não possui descrição, mas pega as informações repetidas e as transforma no índice de uma matriz multidimensional sendo seus items os elementos restantes. Ficou confuso né? ^_^ A linha da PDO em questão fica assim: $data = $stmt -> fetchAll( PDO::FETCH_OBJ | PDO::FETCH_GROUP ); O operador | (será que é o mesmo de operações bitwise? ) "une" ambas as escolhas e produz a seguinte saída: Array ( [Calças] => Array ( [0] => stdClass Object ( [item] => Jeans ) [1] => stdClass Object ( [item] => Lycra ) ) ) Agora basta percorer essa matriz. :grin: Compartilhar este post Link para o post Compartilhar em outros sites
Jhon Paulo 7 Denunciar post Postado Junho 8, 2012 Carlos Coelho, muito intereçante oq você fez.. eu nunca tinha precisado fazer isso, por isso não sabia como organizar dessa maneira. Bruno Augusto, não entendi nada desse tal de PDO tem alguma referência de onde posso estudar isso? (to tentando aprender de tudo um pouco, sabe comé né?) rs' Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Junho 8, 2012 Na minha resposta existem dois links externos, ambos apontando para o Manual. No primeiro para a página principal da PDO e o segundo para o método fetchAll(), pertencente à classe PDOStatement. Honestamente eu não saberia fazer esse "truque" que PDO::FETCH_GROUP faz sem ser com a PDO E sem me utilizar de um loop adicional. Como cada loop evitado é performance ganha, com a PDO resolve-se mais rapidamente. Compartilhar este post Link para o post Compartilhar em outros sites
Jhon Paulo 7 Denunciar post Postado Junho 8, 2012 rsrs'.. por aqui eu pucho os dados e para fazer a exibição dos resultados passo a responsabilidade para o javascript mesmo que tenha que dar uns loops a mais na aplicação do usuário rsrs' Compartilhar este post Link para o post Compartilhar em outros sites
Usfe 8 Denunciar post Postado Junho 8, 2012 <?php $conn = mysql_connect( 'localhost', 'root', '' ); mysql_select_db( 'cadastro', $conn ); $sql = 'SELECT `p`.`id` , `p`.`produto` , `c`.`id` , `c`.`categoria` FROM `produto` `p` INNER JOIN `categoria` `c` ON ( `p`.`id_categoria` = `c`.`id` ) ORDER BY `c`.`id`'; $query = mysql_query( $sql, $conn ); $result = array( ); while( $row = mysql_fetch_assoc( $query ) ) { $result[ $row[ 'categoria' ] ][ ] = $row[ 'produto' ]; } echo '<table>'; foreach( $result as $categoria => $produtos ) { printf( '<tr> <td> <h3>%s</h3> </td> </tr>', $categoria ); foreach( $produtos as $produto ) { printf( '<tr> <td>%s</td> </tr>', $produto ); } } echo '</table>'; ?> Saída <table> <tr> <td> <h3>Sapatos</h3> </td> </tr> <tr> <td>Tênis</td> </tr> <tr> <td>Botina</td> </tr> <tr> <td> <h3>Calça</h3> </td> </tr> <tr> <td>Calça Social</td> </tr> <tr> <td>Calça Jeans</td> </tr> <tr> <td>Calça Feminina</td> </tr> <tr> <td> <h3>Bolsa</h3> </td> </tr> <tr> <td>Bolsa Escolar</td> </tr> <tr> <td>Bolsa Feminina</td> </tr> </table> Você aceita uma resposta que não seja do João Batista Neto? <_< Bom, muita coisa pra ler. Vou me ater apenas ao proposto no primeiro post, ok? A estrutura que eu criei para a resposta seria: -- phpMyAdmin SQL Dump -- version 3.4.5 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: Jun 08, 2012 at 01:36 AM -- Server version: 5.5.16 -- PHP Version: 5.3.8 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; -- -- Database: `imasters` -- -- -------------------------------------------------------- -- -- Table structure for table `products` -- CREATE TABLE IF NOT EXISTS `products` ( `tid` int(5) NOT NULL AUTO_INCREMENT, `pid` int(5) NOT NULL, `name` varchar(255) NOT NULL, PRIMARY KEY (`tid`), KEY `pid` (`pid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; -- -- Dumping data for table `products` -- INSERT INTO `products` (`tid`, `pid`, `name`) VALUES (1, 1, 'Jeans'), (2, 2, 'Polo'), (3, 1, 'Lycra'), (4, 2, 'Regata'), (5, 3, 'Italianos'), (6, 3, 'Com Salto?'); -- -------------------------------------------------------- -- -- Table structure for table `productscategories` -- CREATE TABLE IF NOT EXISTS `productscategories` ( `pid` int(5) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`pid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- Dumping data for table `productscategories` -- INSERT INTO `productscategories` (`pid`, `name`) VALUES (1, 'Calças'), (2, 'Camisas'), (3, 'Sapatos'); -- -- Constraints for dumped tables -- -- -- Constraints for table `products` -- ALTER TABLE `products` ADD CONSTRAINT `products_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `productscategories` (`pid`) ON DELETE NO ACTION ON UPDATE NO ACTION; A query utilizada: SELECT c.name as category, p.name as item FROM `productsCategories` c LEFT JOIN `products` p ON ( p.pid = c.pid ) WHERE p.pid = 1 E a saída: Array ( [0] => stdClass Object ( [category] => Calças [item] => Jeans ) [1] => stdClass Object ( [category] => Calças [item] => Lycra ) ) Não ficou exatamente como desejado, mas é aí que entra o PHP, caso contrário, tudo se resolveria diretamente no BD. Pra testar essa query eu usei a PDO e, por preferência pessoal setei o estilo PDO::FETCH_OBJ para PDOStatement::fetchAll() Isso por si só retorna tudo que você precisa para, com um loop, criar a estrutura desejada. Mas a PDO permite que múltiplos estilos sejam atribuídos ao mesmo tempo no processo de fetch E ela oferece um bem bacana chamado PDO::FETCH_GROUP que infelizmente não possui descrição, mas pega as informações repetidas e as transforma no índice de uma matriz multidimensional sendo seus items os elementos restantes. Ficou confuso né? ^_^ A linha da PDO em questão fica assim: $data = $stmt -> fetchAll( PDO::FETCH_OBJ | PDO::FETCH_GROUP ); O operador | (será que é o mesmo de operações bitwise? ) "une" ambas as escolhas e produz a seguinte saída: Array ( [Calças] => Array ( [0] => stdClass Object ( [item] => Jeans ) [1] => stdClass Object ( [item] => Lycra ) ) ) Agora basta percorer essa matriz. :grin: aeeeeeeeeeeeeeeeeeee \o/ valeu pessoal Consegui hehe eu sabia que tinha jeito :D.. queria pedir desculpas aos demais usuarios e Para o nosso Administrador pelo mal jeito mas foi a unica forma que eu encontrei de ser visto... Quero agradecer aki a todos que participaram e que me ajudaram.. eu fiz da maneira que o Carlos Coelho postou, achei mais simples, a do Bruno Augusto não entendi muito tenho que estudar mais pra entender :/ Estarei postando todo o código Fonte do meu sisteminha tomara que ajude mais gente ;D Segue o Código Fonte: SQL -- phpMyAdmin SQL Dump -- version 2.10.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tempo de Geração: Jun 08, 2012 as 01:09 PM -- Versão do Servidor: 5.0.45 -- Versão do PHP: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Banco de Dados: `cadastro` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `categoria` -- CREATE TABLE `categoria` ( `id` int(11) NOT NULL auto_increment, `categoria` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; -- -- Extraindo dados da tabela `categoria` -- INSERT INTO `categoria` (`id`, `categoria`) VALUES (1, 'Sapatos'), (2, 'Calça'), (3, 'Bolsa'), (4, 'Brinquedos'), (5, 'Jóias'), (6, 'Moto'), (7, 'Utilidades'); -- -------------------------------------------------------- -- -- Estrutura da tabela `produto` -- CREATE TABLE `produto` ( `id` int(11) NOT NULL auto_increment, `produto` varchar(30) NOT NULL, `id_categoria` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ; -- -- Extraindo dados da tabela `produto` -- INSERT INTO `produto` (`id`, `produto`, `id_categoria`) VALUES (1, 'Tênis', '1'), (2, 'Botina', '1'), (3, 'Calça Jeans', '2'), (4, 'Calça Social', '2'), (5, 'Bolsa Escolar', '3'), (6, 'Bolsa Feminina', '3'), (7, 'Calça Feminina', '2'), (8, 'Boneca', '4'), (9, 'Anel', '5'), (10, 'Lycra', '2'), (11, 'XLR', '6'), (12, 'Colar', '5'), (13, 'Carrinho', '4'), (14, 'Tapué', '7'), (15, 'Colheres', '7'); index.php <?php $conn = mysql_connect( 'localhost', 'root', '' ); mysql_select_db( 'cadastro', $conn ); //-> CATEGORIAS $categoria = $_POST['txtCategoria']; if (isset($categoria)) { $cad_categoria = mysql_query("INSERT INTO categoria(categoria) VALUES('$categoria')"); header("Location: index.php"); } //-> PRODUTOS $produto = $_POST['txtProduto']; $val_categoria = $_POST['categoria']; if (isset($produto)) { $cad_produto = mysql_query("INSERT INTO produto(produto, id_categoria) VALUES('$produto','$val_categoria')"); header("Location: index.php"); } ?> <!DOCTYPE html> <html lang="pt"> <head> </head> <body> <br><br>Selecione uma Opção: <a href="?opc=categoria">Cadastar Categoria</a>, <a href="?opc=produto">Cadastrar Produtos</a> <a href="relatorio.php">Relatorio</a> <?php if($_GET['opc'] == 'categoria') { ?> <form id="formulario" action="index.php" method="post"> <span><h2>Cadastrar Categoria</h2></span> <span>Nome da Categoria</span><br> <span><input type="textfield" name="txtCategoria"></span><br> <span> <input type="submit" value="Enviar" /></span> </form> <?php }elseif($_GET['opc'] == 'produto'){ $sql = mysql_query("SELECT * FROM categoria"); ?> <form id="formulario" action="index.php" method="post"> <span><h2>Cadastrar Produtos</h2></span> <span><input type="textfield" name="txtProduto"></span><br> <span> <select name="categoria" id="categoria"> <?php while($list = mysql_fetch_assoc($sql)) { echo '<option value="'.$list['id'].'">'.$list['categoria'].'</option>'; } ?> </select> </span> <span> <input type="submit" value="Enviar"/></span> </form> <?php } ?> </body> </html> relatorio.php <?php $conn = mysql_connect( 'localhost', 'root', '' ); mysql_select_db( 'cadastro', $conn ); $sql = 'SELECT `p`.`id` , `p`.`produto` , `c`.`id` , `c`.`categoria` FROM `produto` `p` INNER JOIN `categoria` `c` ON ( `p`.`id_categoria` = `c`.`id` ) ORDER BY `c`.`id`'; $query = mysql_query( $sql, $conn ); $result = array( ); while( $row = mysql_fetch_assoc( $query ) ) { $result[ $row[ 'categoria' ] ][ ] = $row[ 'produto' ]; } ?> <html> <head></head> <body> <style> <!-- body{ background-color:#E5E5E5; margin: 5px; } #cont-A4 { height:842pt; width: 595pt; background-color:#fff; position:relative; } #sombra-A4 { margin:5px; height:842pt; width: 595pt; background-color:#CCC; position:absolute; } /******CLASSES DE TEXTO********/ .titulo{ font-family:VWHeadline-BookTab; font-size: 30px; font-weight: bold; color:#000; text-align:center; margin:30px; } .opc{ margin: 30px; } .texto1{ font-family:VWHeadline-BookTab; font-size: 20px; font-weight: bold; color:#000; } .texto{ font-family:VWHeadline-BookTab; font-size: 18px; color:#000; } --> </style> <div id="sombra-A4"></div> <div id="cont-A4"> <a href="javascript:window.print()">Imprimir</a> <a href="index.php">Voltar</a><br /> <div class="titulo">Balanço de Estoque</div> <div class="opc"> <p><span class="texto1">Operador: </span><span class="texto">FERNANDO</span></p> <p> <?php foreach( $result as $categoria => $produtos ) { printf('<hr><span class="texto1">Categoria: </span><span class="texto">'.$categoria.'</span> <br /> '); foreach( $produtos as $produto ) { printf( '<span class="texto1">Produto: </span><span class="texto">'.$produto.'</span> <br />'); } } ?> </p> </div> </div><!-- fim folha --> </body> </html> té + ;) RESOLVIDO com Sucesso! Compartilhar este post Link para o post Compartilhar em outros sites