Página 1 de 1

como criar um browse em PHP?

Enviado: 12 Jul 2023 23:24
por cjp
Alguém poderia me dizer como faço para criar um browse em PHP, com campos de uma tabela MySQL, para o usuário escolher o dado?
Já pesquisei na internet, mas não achei nada.
Só quero fazer uma função genérica que liste os campos da base, dando ao usuário a opção de clicar em um campo; daí a função retornaria o campo escolhido.
Alguém me ajuda?

como criar um browse em PHP?

Enviado: 02 Ago 2023 01:22
por mauricioportela
ola!

plo que entendi, é assim:

Arquivo: produtos.html

Código: Selecionar todos

<!DOCTYPE html>
<html>
<head>
    <title>Grid de Produtos</title>
</head>
<body>
    <h1>Grid de Produtos</h1>
    <form action="processar_grid.php" method="post">
        <p>Selecione os campos que deseja visualizar:</p>
        <input type="checkbox" name="campos[]" value="id" checked>id
        <input type="checkbox" name="campos[]" value="descricao">descricao
        <input type="checkbox" name="campos[]" value="grupo_id">grupo_id
        <input type="checkbox" name="campos[]" value="quantidade">quantidade
        <input type="checkbox" name="campos[]" value="preco">preco
        <input type="checkbox" name="campos[]" value="cadastro">cadastro

        <!-- Adicione mais campos aqui, se necessário -->
        <br><br>
        <input type="submit" value="Visualizar">
    </form>
</body>
</html>
Arquivo: processar_grid.php

Código: Selecionar todos

<?php
// Faça a conexão com o banco de dados usando suas credenciais
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "loja";

$conn = new mysqli($servername, $username, $password, $dbname);

// Verifique se ocorreu algum erro na conexão
if ($conn->connect_error) {
    die("Erro na conexão: " . $conn->connect_error);
}

// Verifica se o formulário foi submetido
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Recupere os campos selecionados do formulário
    $camposSelecionados = $_POST["campos"];
    $campos = implode(",", $camposSelecionados);

    // Monta a consulta SQL dinâmica com os campos selecionados
    $sql = "SELECT $campos FROM produto";

    // Executa a consulta
    $result = $conn->query($sql);

    // Exibe o resultado em uma tabela
    if ($result->num_rows > 0) {
        echo "<table border='1'>";
        echo "<tr>";

        // Exibe os cabeçalhos das colunas
        foreach ($camposSelecionados as $campo) {
            echo "<th>$campo</th>";
        }

        echo "</tr>";

        // Exibe os dados das colunas
        while ($row = $result->fetch_assoc()) {
            echo "<tr>";
            foreach ($camposSelecionados as $campo) {
                echo "<td>" . $row[$campo] . "</td>";
            }
            echo "</tr>";
        }

        echo "</table>";
    } else {
        echo "Nenhum resultado encontrado.";
    }
}

// Fecha a conexão com o banco de dados
$conn->close();
?>
Arquivo: loja.sql

Código: Selecionar todos

--
-- Banco de dados: `loja`
--
-- --------------------------------------------------------
--
-- Estrutura da tabela `produto`
--
CREATE TABLE IF NOT EXISTS `produto` (
    `id` int NOT NULL AUTO_INCREMENT,
    `descricao` varchar(100) NOT NULL,
    `grupo_id` int NOT NULL,
    `quantidade` int NOT NULL,
    `preco` decimal(10,0) NOT NULL,
    `cadastro` date NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Extraindo dados da tabela `produto`
--
INSERT INTO `produto` (`id`, `descricao`, `grupo_id`, `quantidade`, `preco`, `cadastro`) VALUES
(1, 'CADERNO', 1, 100, '10', '2023-08-02'),
(2, 'CANETA', 1, 12, '1', '2023-08-02'),
(3, 'LIVRO', 1, 22, '40', '2023-08-02'),
(4, 'IMPRESSORA MATRICIAL', 2, 2, '1250', '2023-08-02');
COMMIT;

Att.
Mauricio

como criar um browse em PHP?

Enviado: 03 Ago 2023 00:21
por cjp
Obrigado pela ajuda.
Seria algo assim, mas eu preciso lista os campos da tabela, pegando do banco de dados.
Quero uma função genérica, para servir para qualquer tabela.
É possível?

como criar um browse em PHP?

Enviado: 03 Ago 2023 02:03
por mauricioportela
ola!

Testa ai pra ver se assim resolve:

Arquivo: produtos.html (ou qualquer outros nome/tabela)

Código: Selecionar todos

<!DOCTYPE html>
<html>
<head>
    <title>Grid de Produtos</title>
</head>
<body>
    <h1>Grid de Produtos</h1>
    <form action="processar_grid.php" method="post">
        <p>Digite o nome da tabela:</p>
        <input type="text" name="nome_tabela">
        <br><br>
        <input type="submit" value="Visualizar">
    </form>
</body>
</html>
Arquivo: processar_grid.php

Código: Selecionar todos

<!DOCTYPE html>
<html>
    <head>
        <title>Grid de Produtos</title>
    </head>
    <body>
        <h1>Grid de Produtos</h1>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <p>Digite o nome da tabela:</p>
            <input type="text" name="nome_tabela">
            <br><br>
            <input type="submit" value="Visualizar">
        </form>
        <?php
            // Faça a conexão com o banco de dados usando suas credenciais
            $servername = "localhost";
            $username = "root";
            $password = "";
            $dbname = "loja";

            $conn = new mysqli($servername, $username, $password, $dbname);
            // Verifique se ocorreu algum erro na conexão
            if ($conn->connect_error) {
                die("Erro na conexão: " . $conn->connect_error);
            }
            // Verifica se o formulário foi submetido
            if ($_SERVER["REQUEST_METHOD"] == "POST") {
                // Recupere o nome da tabela informado pelo usuário
                $nomeTabela = $_POST["nome_tabela"];
                // Consulta para obter os nomes dos campos da tabela informada
                $sql = "SHOW COLUMNS FROM $nomeTabela";
                $result = $conn->query($sql);
                // Verifica se a tabela existe no banco de dados
                if ($result->num_rows > 0) {
                    echo "<h2>Grid da Tabela: $nomeTabela</h2>";
                    echo "<form method='post'>";
                    echo "<p>Selecione os campos que deseja visualizar:</p>";
                    // Exibe os campos da tabela como checkboxes
                    while ($row = $result->fetch_assoc()) {
                        $campo = $row['Field'];
                        echo "<input type='checkbox' name='campos[]' value='$campo' checked>$campo<br>";
                    }
                    echo "<input type='hidden' name='nome_tabela' value='$nomeTabela'>";
                    echo "<br>";
                    echo "<input type='submit' value='Visualizar'>";
                    echo "</form>";
                    // Exibe o resultado em uma tabela
                    if (isset($_POST['campos'])) {
                        $camposSelecionados = $_POST["campos"];
                        $campos = implode(",", $camposSelecionados);
                        // Monta a consulta SQL dinâmica com os campos selecionados
                        $sql = "SELECT $campos FROM $nomeTabela";
                        // Executa a consulta
                        $result = $conn->query($sql);
                        if ($result->num_rows > 0) {
                            echo "<table border='1'>";
                            echo "<tr>";
                            // Exibe os cabeçalhos das colunas
                            foreach ($camposSelecionados as $campo) {
                                echo "<th>$campo</th>";
                            }
                            echo "</tr>";
                            // Exibe os dados das colunas
                            while ($row = $result->fetch_assoc()) {
                                echo "<tr>";
                                foreach ($camposSelecionados as $campo) {
                                    echo "<td>" . $row[$campo] . "</td>";
                                }
                                echo "</tr>";
                            }
                            echo "</table>";
                        } else {
                            echo "Nenhum resultado encontrado.";
                        }
                    }
                } else {
                    echo "Tabela não encontrada no banco de dados.";
                }
            }
            // Fecha a conexão com o banco de dados
            $conn->close();
        ?>
    </body>
</html>
Att.
Mauricio

como criar um browse em PHP?

Enviado: 03 Ago 2023 02:16
por mauricioportela
Veja a sequencia na imagem.

como criar um browse em PHP?

Enviado: 04 Ago 2023 01:43
por cjp
Era isso mesmo que eu queria. Muito obrigado.