Ir para conteúdo

POWERED BY:

Arquivado

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

Usfe

[Resolvido] Erro na Logica...

Recommended Posts

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

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

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

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

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

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

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

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

 

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

 

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

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

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

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

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

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

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

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

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

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

×

Informação importante

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