Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <title>Busca de Produtos</title>
- </head>
- <body>
- <h1>Busca de Produtos</h1>
- <form action="busca_produtos.php" method="post">
- <label for="categoria">Escolha uma categoria:</label>
- <select name="categoria" id="categoria">
- <option value="">Todas as Categorias</option>
- <?php
- // Conexão com o banco de dados
- $servername = 'localhost';
- $username = 'root';
- $password = '';
- $dbname = 'exemplo_produtos';
- $conn = new mysqli($servername, $username, $password, $dbname);
- if ($conn->connect_error) {
- die('Erro na conexão: ' . $conn->connect_error);
- }
- // Consulta para buscar as categorias
- $query = "SELECT id_categoria, categoria FROM categoria_produtos";
- $result = $conn->query($query);
- // Gerar as opções do select com base nas categorias do banco de dados
- while ($row = $result->fetch_assoc()) {
- echo '<option value="' . $row['id_categoria'] . '">' . $row['categoria'] . '</option>';
- }
- ?>
- </select>
- <br>
- <label for="palavra_chave">Palavra-chave:</label>
- <input type="text" name="palavra_chave" id="palavra_chave">
- <br>
- <input type="submit" value="Buscar">
- </form>
- <hr>
- <?php
- if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- $categoria = $_POST['categoria'];
- $palavra_chave = $_POST['palavra_chave'];
- $sql = "SELECT p.id_produto, p.titulo_produto, p.descricao, p.valor, p.quantidade_disponivel
- FROM produtos p
- INNER JOIN categoria_produtos c ON p.id_categoria = c.id_categoria
- WHERE (c.id_categoria = ? OR ? IS NULL)
- AND (p.titulo_produto LIKE ? OR p.descricao LIKE ?)";
- $stmt = $conn->prepare($sql);
- // Ajuste das variáveis de categoria para uso como referência
- if ($categoria === '') {
- $categoria = null;
- }
- // Preparação dos parâmetros e execução da consulta
- $palavra_chave = '%' . $palavra_chave . '%';
- $stmt->bind_param('iiss', $categoria, $categoria, $palavra_chave, $palavra_chave);
- $stmt->execute();
- $result = $stmt->get_result();
- // Exibir os resultados
- while ($row = $result->fetch_assoc()) {
- echo '<p>ID: ' . $row['id_produto'] . '</p>';
- echo '<p>Título: ' . $row['titulo_produto'] . '</p>';
- echo '<p>Descrição: ' . $row['descricao'] . '</p>';
- echo '<p>Valor: ' . $row['valor'] . '</p>';
- echo '<p>Quantidade Disponível: ' . $row['quantidade_disponivel'] . '</p>';
- echo '<hr>';
- }
- $stmt->close();
- } else {
- echo "Nenhum formulário enviado.";
- }
- $conn->close();
- ?>
- </body>
- </html>
- ---
- SQL para tabelas de teste:
- CREATE TABLE categoria_produtos (
- id_categoria INT AUTO_INCREMENT PRIMARY KEY,
- categoria VARCHAR(255) NOT NULL
- );
- CREATE TABLE produtos (
- id_produto INT AUTO_INCREMENT PRIMARY KEY,
- id_categoria INT,
- titulo_produto VARCHAR(255) NOT NULL,
- descricao TEXT,
- valor DECIMAL(10, 2),
- quantidade_disponivel INT,
- FOREIGN KEY (id_categoria) REFERENCES categoria_produtos(id_categoria)
- );
- -- Inserir categorias fictícias
- INSERT INTO categoria_produtos (categoria) VALUES ('Eletrônicos');
- INSERT INTO categoria_produtos (categoria) VALUES ('Roupas');
- INSERT INTO categoria_produtos (categoria) VALUES ('Alimentos');
- INSERT INTO categoria_produtos (categoria) VALUES ('Móveis');
- INSERT INTO categoria_produtos (categoria) VALUES ('Acessórios');
- -- Inserir produtos fictícios
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (1, 'Smartphone Modelo A', 'Um smartphone avançado com recursos incríveis.', 799.99, 50);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (1, 'Tablet Modelo B', 'Um tablet com ótimo desempenho e tela de alta resolução.', 399.99, 30);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (2, 'Camiseta Casual', 'Uma camiseta confortável e elegante para o dia a dia.', 29.99, 100);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (2, 'Jaqueta de Couro', 'Uma jaqueta de couro elegante e durável.', 149.99, 20);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (3, 'Chocolate Gourmet', 'Um delicioso chocolate gourmet de alta qualidade.', 5.99, 200);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (3, 'Café Especial', 'Café de origem única com sabor intenso e aromático.', 9.99, 150);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (4, 'Sofá Moderno', 'Um sofá moderno e confortável para a sua sala.', 499.99, 10);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (4, 'Mesa de Jantar', 'Uma mesa de jantar elegante para suas refeições em família.', 299.99, 15);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (5, 'Relógio de Pulso', 'Um relógio elegante e sofisticado para todas as ocasiões.', 129.99, 50);
- INSERT INTO produtos (id_categoria, titulo_produto, descricao, valor, quantidade_disponivel)
- VALUES (5, 'Bolsa de Couro', 'Uma bolsa de couro durável e estilosa.', 79.99, 40);
Add Comment
Please, Sign In to add comment