Hello, I have this code to show the categories menu:
require_once ('./funcao/conecta.php');
$conn = conecta();
$sql = $conn->prepare("SELECT * FROM 'loja'.'categorias' ORDER BY 'nome_categoria' ASC");
$sql->execute(array());
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
while($linha = $sql->fetch()) {
$categoriaid = $linha['id_categoria'];
$nomecategoria = $linha['nome_categoria'];
echo'<li>';
echo'<a base64_encode href="./index.php?acao=add'.$linha['id'].'">'.$nomecategoria.'</a>';
echo'</li>';
}
echo'</div>';
echo '</div id="link"><div>';
echo'</div>';
And this code shows products with pagination:
require_once('./funcao/conecta.php');
$conn = conecta();
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
echo '<table width="100%" height="0" cellspacing="60" cellpadding="60">';
$i = 1;
$limite = 10;
$pg = (isset($_GET['pg'])) ? (int)$_GET['pg'] : 1;
$inicio = ($pg * $limite) - $limite;
$busca = $conn->prepare("SELECT * FROM 'produtos' ORDER BY 'id' LIMIT $inicio,$limite");
$busca->execute(array());
$busca->setFetchMode(PDO::FETCH_ASSOC);
$busca->execute();
echo '<div id="Box">';
while ($linha = $busca->fetch(PDO::FETCH_ASSOC)) {
echo '<td align = "center"><h2>' . $linha['nome'] . '</h2></br>';
echo '<div align="loja"><img src=' . $linha['foto'] . '></a><a base64_encode href="./shop.php?acao=add&id=' . $linha['id'] . '"></br></br>';
echo '<p align = "center"><button type="button" name="" value="" class="quero">Eu Quero!</button></p>';
if ($i % 5 == 0) {
echo "</tr><tr>";
}
$i++;
}
echo '<div class="clear"> </div>';
echo "</tr></table>";
//seleciona o total de registros
$sql_Total = 'SELECT * FROM 'produtos' ';
try {
$query_Total = $conn->prepare($sql_Total);
$query_Total->execute();
$query_result = $query_Total->fetchAll(PDO::FETCH_ASSOC);
//conta quantos registros tem no banco de dados
$query_count = $query_Total->rowCount(PDO::FETCH_ASSOC);
//calcula o total de paginas a serem exibidas
$qtdPag = ceil($query_count / $limite);
} catch (PDOexception $error_Total) {
echo 'Erro ao retornar os Dados. ' . $error_Total->getMessage();
}
//Cria os links para navega��o das paginas
echo ' <div class = "paginacao"><div align = "center" ><a href="?pg=1">Primeira Página</a> ';
if ($qtdPag > 1 && $pg <= $qtdPag) {
for ($i = 1; $i <= $qtdPag; $i++) {
if ($i == $pg) {
echo $i;
} else {
echo "<a href='index.php?pg=$i'>" . $i . "</a>";
}
}
}
echo " <a href=\"?pg=$qtdPag\">Última Página</a> ";
My question is: how can I make the categories menu display the products generated by the second listing, that is, list the products in their respective category.
Here the used bank is:
-- phpMyAdmin SQL Dump
-- version 3.3.9.2
-- http://www.phpmyadmin.net
--
-- Servidor: 127.0.0.1
-- Tempo de Geração: Jan 07, 2016 as 09:44 PM
-- Versão do Servidor: 5.5.10
-- Versão do PHP: 5.3.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Banco de Dados: 'loja'
--
CREATE DATABASE 'loja' DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE 'loja';
-- --------------------------------------------------------
--
-- Estrutura da tabela 'categorias'
--
CREATE TABLE IF NOT EXISTS 'categorias' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'id_categoria' varchar(255) DEFAULT NULL,
'nome_categoria' varchar(255) DEFAULT NULL,
PRIMARY KEY ('id'),
KEY 'id_categoria' ('id_categoria')
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
--
-- Extraindo dados da tabela 'categorias'
--
INSERT INTO 'categorias' ('id', 'id_categoria', 'nome_categoria') VALUES
(1, '1', 'Masculino'),
(2, '2', 'Feminino'),
(3, '3', 'Acessorios'),
(4, '4', 'Roupa Intima'),
(5, '5', 'Linha Saude'),
(6, '6', 'Cosmeticos'),
(7, '7', 'Linha Fitness');
-- --------------------------------------------------------
--
-- Estrutura da tabela 'produtos'
--
CREATE TABLE IF NOT EXISTS 'produtos' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'id_produto' varchar(255) DEFAULT NULL,
'foto' varchar(255) DEFAULT NULL,
'nome' varchar(255) DEFAULT NULL,
'descricao' longtext,
'preco' varchar(255) DEFAULT NULL,
'tamanho' varchar(255) DEFAULT NULL,
'cor' varchar(255) DEFAULT NULL,
PRIMARY KEY ('id'),
KEY 'id_categoria' ('id_produto')
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=179 ;
--
-- Extraindo dados da tabela 'produtos'
--
INSERT INTO 'produtos' ('id', 'id_produto', 'foto', 'nome', 'descricao', 'preco', 'tamanho', 'cor') VALUES
(1, '2', 'fotos/aconchego.png', 'ACONCHEGO', 'Material sintético de alta qualidade. Solado em Poliuretano de 3 cm. Tecnologia para quem quer pisar com maciez e conforto. Tiras em sintético com cetim.', 'R$ 182,00', '33 ao 40', 'Preto,Vermelho,Marrom'),
(2, '2', 'fotos/adele.png', 'ADELE', 'Em material sintetico de alta qualidade e com detalhes trabalhados. Forro touch em Poliuretano. Fivelas douradas e palmilhas forradas.', 'R$ 233,00', '33 ao 39', 'Cor única'),
(3, '2', 'fotos/afrika.png', 'AFRIKA', 'Com material sintetico estampado com o tema onça.Forro interno em touch,com espuma na parte traseira e palmilhas forradas.Solado em TR antiderrapante,confortavel e leve, com salto dourado de 2cm.', 'R$ 198,00', '33 ao 39', 'Cor única'),
(4, '2', 'fotos/aline.png', 'ALINE', 'Toda em couro legítimo, palmilha em couro touch com detalhes em couro. Solado PU de 12cm, zíper traseiro de alta resistência.', 'R$ 303,00', '33 ao 39', 'Bordô,Preto e Azul'),
(5, '2', 'fotos/aluska.png', 'ALUSKA', 'Sintetico de alta qulidade,palmilha forrada e forro touch interno.Salto dourado de 2cm.', 'R$ 197,00', '33 ao 39', 'Vinho,Metal,Bronze,Metal,Bordo'),
(6, '2', 'fotos/amora.png', 'AMORA', 'Pedras do tipo strass em sintético de alta qualidade,super resistente. Solado em Poliuretano leve de 3cm .', 'R$ 160,00', '33 ao 40', 'Preto,Marrom'),
(7, '2', 'fotos/anaclara.png', 'ANA CLARA', 'Sintetico de qualidade com forro interno touch e palmilha e solado em Poliuretano com 8,5 cm.', 'R$ 246,00', '33 ao 39', 'Azul,Bic,Bordô,Creme'),
(8, '2', 'fotos/angelica.png', 'ANGELICA', 'Sintético de alta qualidade com forro interno em touch e tiras em couro. Solado em Poliuretano em 3,5 cm de altura.', 'R$ 187,00', '33 ao 40', 'Cor única'),
(9, '2', 'fotos/anita.png', 'ANITA', 'Em couro tipo nobuck e forro touch e solado em Poliuretano.salto de 8 cm.', 'R$ 319,00', '33 ao 39', 'Cor única'),
(10, '2', 'fotos/anna.png', 'ANNA', 'Totalmente em couro,com várias estampas e cores com forro espumado e solado em TR super aderente.', 'R$ 297,00', '33 ao 39', 'Floral,Branco,Copacabana,Revista'),
(11, '2', 'fotos/avila.png', 'AVILA', 'Flotter sintético. Possui palmilha em Poliuretano, solado com 8,5 cm de altura,trazendo fachetas delicadas com forro touch.', 'R$ 253,00', '33 ao 39', 'Preto,Musgo,Azul Bic,Terra'),
(12, '2', 'fotos/babu.png', 'BABU', 'Em sintético de alta qualidade,forro touch.Plataforma de 6 cm.', 'R$ 218,00', '33 ao 39', 'Verde,Terra,Preto'),
(13, '2', 'fotos/bambina.png', 'BAMBINA', 'Em couro com solado de 4,5 cm flexível, macio , leve com elástico na traseira.', 'R$ 223,00', '33 ao 39', 'Cor única'),
(14, '3', 'fotos/baronesa.png', 'BARONESA', 'Em couro trabalhado de dois tipos: flotter e cobra,Design elegante com botão externo traseiro. Alça com regulagem de tamanho.', 'R$ 878,00', 'único', 'Cor única'),
(15, '2', 'fotos/beatriz.png', 'BEATRIZ', 'Em couro legitimo,possui salto dourado com 2cm.Forrada internamente com forro pluma xadrez. Metais em couro envellhecido de alta qualidade.', 'R$ 319,00', '33 ao 39', 'Bordô,Floral,Musgo,Azul,Telha'),
(16, '2', 'fotos/biah.png', 'BIAH', 'Feita em couro natural,com imãs e infravermelho longo, forro interno touch.', 'R$ 218,00', '33 ao 39', 'Uva,Amarela,Telha,Red,Verde'),
(17, '1', 'fotos/billy.png', 'BILLY', 'Sapatênis de couro com design super moderno. Sola em TR e palmilha Confort em Poliuretano de alto conforto.', 'R$ 407,00', '37 ao 43', 'Marinho,Cinza,Marrom'),
(18, '3', 'fotos/classic.png', 'BOLSA CLASSIC', 'Bolsa especial em couro legítimo.Metais de alta qualidade e zíper reforçado.', 'R$ 616,00', 'único', 'Cor única'),