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.