Jump to content
danicarla

Permitir acesso somente a algumas tabelas

Recommended Posts

Olá pessoal, bom dia tudo bom?

Queria saber se tem como eu criar um usuário para um banco Mysql e permitir que esse usuário acesse somente algumas tabelas do banco
Estou procurando na documentação mas não encontrei nada... provavelmente não existe essa opção né?

Share this post


Link to post
Share on other sites

Bom dia @danicarla, tudo ótimo espero que contigo também.

 

Se você cria um usuário para o banco de dados, então ele terá acesso à somente o banco de dados a qual ele foi criado, isso você pode definir. Agora, com relação às tabelas, até onde sei, o máximo que você vai conseguir é limitar às ações do usuário para com ela, por exemplo: Só poderá ter permissão de SELECT, de INSERT e UPDATE. Isso é possível.

Share this post


Link to post
Share on other sites

Então eu estava lendo a documentação do Mysql e lá fala assim:

 

Citar

The tables_priv and columns_priv tables are similar to the db table, but are more fine-grained: They apply at the table and column levels rather than at the database level. A privilege granted at the table level applies to the table and to all its columns. A privilege granted at the column level applies only to a specific column.

https://dev.mysql.com/doc/refman/5.7/en/grant-tables.html

 

Por esse trecho eu entendi que daria para fazer esse tipo de permissão... Mas pelo PhpMyAdmin não consegui fazer nada...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Quencyjones79
      Olá a todos, sou novo na área de multimídia. Estou a seguir a um momento um ebook sobre a criação de uma base de dados e também a criação de tabelas. Mas quando vinculei as tabelas do banco de dados, no phpmyadmin me deu alguns erros. Fiz a correspondência da chave primária (artist_id da tabela Artist) com a artist_id da tabela Prints (chave estrangeira) e assim por diante. O problema é que ele não mostra minhas relações das tabelas e me dá uma mensagem de erro. Então, alguns de vocês poderiam me ajudar, por favor, a consertar esta situação. Eu serei grato. Cumprimentos.
       
      Ps .: Abaixo envio o arquivo Sql.
       
      Atentamente,

      José Moreira
      -- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Generation Time: Jan 07, 2021 at 08:49 PM -- Server version: 10.4.14-MariaDB -- PHP Version: 7.2.33 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!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 utf8mb4 */; -- -- Database: `ecommerce` -- -- -------------------------------------------------------- -- -- Table structure for table `artists` -- CREATE TABLE `artists` ( `artist_id` int(10) UNSIGNED NOT NULL, `first_name` varchar(20) DEFAULT NULL, `middle_name` varchar(20) DEFAULT NULL, `last_name` varchar(40) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- -- -- Table structure for table `customers` -- CREATE TABLE `customers` ( `customer_id` int(10) UNSIGNED NOT NULL, `email` varchar(60) NOT NULL, `pass` char(40) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- -- -- Table structure for table `orders` -- CREATE TABLE `orders` ( `order_id` int(10) UNSIGNED NOT NULL, `customer_id` int(10) UNSIGNED NOT NULL, `total` decimal(10,2) UNSIGNED NOT NULL, `order_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- -- -- Table structure for table `order_contents` -- CREATE TABLE `order_contents` ( `oc_id` int(10) UNSIGNED NOT NULL, `order_id` int(10) UNSIGNED NOT NULL, `print_id` int(10) UNSIGNED NOT NULL, `quantity` tinyint(3) UNSIGNED NOT NULL DEFAULT 1, `price` decimal(6,2) UNSIGNED NOT NULL, `ship_date` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- -- -- Table structure for table `prints` -- CREATE TABLE `prints` ( `print_id` int(10) UNSIGNED NOT NULL, `artist_id` int(10) UNSIGNED NOT NULL, `print_name` varchar(60) NOT NULL, `price` decimal(6,2) UNSIGNED NOT NULL, `size` varchar(60) DEFAULT NULL, `description` varchar(255) DEFAULT NULL, `image_name` varchar(60) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; -- -- Indexes for dumped tables -- -- -- Indexes for table `artists` -- ALTER TABLE `artists` ADD PRIMARY KEY (`artist_id`), ADD UNIQUE KEY `full_name` (`last_name`,`first_name`,`middle_name`); -- -- Indexes for table `customers` -- ALTER TABLE `customers` ADD PRIMARY KEY (`customer_id`), ADD UNIQUE KEY `email` (`email`), ADD KEY `login` (`email`,`pass`); -- -- Indexes for table `orders` -- ALTER TABLE `orders` ADD PRIMARY KEY (`order_id`), ADD KEY `customer_id` (`customer_id`), ADD KEY `order_date` (`order_date`); -- -- Indexes for table `order_contents` -- ALTER TABLE `order_contents` ADD PRIMARY KEY (`oc_id`), ADD KEY `order_id` (`order_id`), ADD KEY `print_id` (`print_id`), ADD KEY `ship_date` (`ship_date`); -- -- Indexes for table `prints` -- ALTER TABLE `prints` ADD PRIMARY KEY (`print_id`), ADD KEY `artist_id` (`artist_id`), ADD KEY `print_name` (`print_name`), ADD KEY `price` (`price`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `artists` -- ALTER TABLE `artists` MODIFY `artist_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `customers` -- ALTER TABLE `customers` MODIFY `customer_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `orders` -- ALTER TABLE `orders` MODIFY `order_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `order_contents` -- ALTER TABLE `order_contents` MODIFY `oc_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `prints` -- ALTER TABLE `prints` MODIFY `print_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
       

    • By Rogério Orlando
      Na SQL abaixo, quando consulto as tabelas, os registros se repetem, apresentando mais do que realmente existem.
      Alguém pode auxiliar no que está errado ou o que falta para que a select retorne apenas um registro para cada documento?
      Esclareço que todas as tabelas tem um campo "documento", porém ele não é chave e no retorno trouxe todos os campos de todas as tabelas e não apenas as dá SQL:
       
       
      select so01.documento,so01.digito,so01.nome,so01.regional,so01.situacao,so01.observacao,so01.n_spprev,so01.averbacao, so02.endereco, so02.numero, so02.bairro,so02.cidade,so02.cep,so02.estado,so02.aniversario, so03.rg, so03.cpf, so03.email, so04.estado_civil, so04.agencia,so04.dg_agencia,so04.conta,so04.dg_conta,so04.banco,so04.ddd,so04.telefone,so04.nascimento, so04.admissao,so04.demissao_seg,so04.admor,so04.ddd_cel,so04.celular from so03 inner join so01 ON so01.documento= so03.documento inner join so02 ON so02.documento= so03.documento inner join so04 ON so04.documento=so03.documento where so01.documento="68" and so01.digito="0"  
       
    • By netocazuza
      Tenho um sistema de login funcionando, checando usuário e senha para autenticar. Tá tudo funcional até agora, mas surgiu a necessidade de criar permissões, e estou meio perdido. Já criei o item permissões na tabela, e tentei algumas implementações, mas até agora, nada funcionou. Ou não abre, ou abre permitindo tudo.
      Atualmente funciona assim:
      O arquivo abaixo verifica login e senha e dá acesso:
      <?php session_start(); include 'conexao/conexao.php'; $usuario = $_POST['usuario']; $senha = $_POST['senha']; $sql = "SELECT * FROM usuarioX WHERE usuarioX = '$usuario'"; $busca = mysqli_query($conexao, $sql); #Buscar senha $dados = mysqli_fetch_array($busca); $senhabd = $dados['senhaX']; $senhaVerificada = ($senha); #Verifica niveis de permissoes usuario #QUERO COLOCAR AS PERMISSÕES AQUI #Verifica se existe o usuario $linha = mysqli_affected_rows($conexao); if ($linha == 1) {     if ($senhabd == $senhaVerificada) {         $_SESSION['usuario'] = $usuario;         header('Location: index.php');    } else {         header('Location: login.php?id=1');     } } else {         header('Location: login.php?id=2'); } ?>
      No código acima, caso usuário e senha confira, ele direciona para o index, do contrário volta para o login. O que pretendo é acrescentar permissões de professor, aluno e pai. Tipo se 1 nas permissões, abrir o index. Se 2 nas permissões, abrir o aluno.php, e se 3 nas permissões, abrir o pai.php. Logo abaixo vou listar a página index, pois acredito que nela tem alguma ação que tá impedindo essa minha lógica. A idéia seria ter uma página dessa (index) para cada usuário, ou uma idéia melhor, caso alguém tenha.
      <?php session_start(); if (!isset ($_SESSION['usuario']) == true) {     unset($_SESSION['login']);     header('Location: login.php'); } $logado = $_SESSION['usuario']; ?> <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">   <title>     Dashboard -   </title>   <!-- Favicon -->   <link href="./assets/img/brand/favicon.png" rel="icon" type="image/png">   <!-- Fonts -->   <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet">   <!-- Icons -->   <link href="./assets/js/plugins/nucleo/css/nucleo.css" rel="stylesheet" />   <link href="./assets/js/plugins/@fortawesome/fontawesome-free/css/all.min.css" rel="stylesheet" />   <!-- CSS Files -->   <link href="./assets/css/argon-dashboard.css?v=1.1.0" rel="stylesheet" /> </head> <body> <nav class="navbar navbar-vertical fixed-left navbar-expand-md navbar-light bg-white" id="sidenav-main">     <div class="container-fluid">       <!-- Toggler -->       <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle navigation">         <span class="navbar-toggler-icon"></span>       </button>       <!-- Brand -->       <a class="navbar-brand pt-0" href="./index.html">         <img src="./assets/img/brand/blue.png" class="navbar-brand-img" alt="...">       </a>       <!-- User -->       <ul class="nav align-items-center d-md-none">         <li class="nav-item dropdown">           <a class="nav-link nav-link-icon" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">             <i class="ni ni-bell-55"></i>           </a>           <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right" aria-labelledby="navbar-default_dropdown_1">             <a class="dropdown-item" href="#">Action</a>             <a class="dropdown-item" href="#">Another action</a>             <div class="dropdown-divider"></div>             <a class="dropdown-item" href="#">Something else here</a>           </div>         </li>         <li class="nav-item dropdown">           <a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">             <div class="media align-items-center">               <span class="avatar avatar-sm rounded-circle">                 <img alt="Image placeholder" src="./assets/img/theme/team-1-800x800.jpg ">               </span>             </div>           </a>           <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right">             <div class=" dropdown-header noti-title">               <h6 class="text-overflow m-0">Welcome!</h6>             </div>             <div class="dropdown-divider"></div>             <a href="#!" class="dropdown-item">               <i class="ni ni-user-run"></i>               <span>Logout</span>             </a>           </div>         </li>       </ul>       <!-- Collapse -->       <div class="collapse navbar-collapse" id="sidenav-collapse-main">         <!-- Collapse header -->         <div class="navbar-collapse-header d-md-none">           <div class="row">             <div class="col-6 collapse-brand">               <a href="./index.html">                 <img src="./assets/img/brand/blue.png">               </a>             </div>             <div class="col-6 collapse-close">               <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle sidenav">                 <span></span>                 <span></span>               </button>             </div>           </div>         </div>         <!-- Form -->         <form class="mt-4 mb-3 d-md-none">           <div class="input-group input-group-rounded input-group-merge">             <input type="search" class="form-control form-control-rounded form-control-prepended" placeholder="Search" aria-label="Search">             <div class="input-group-prepend">               <div class="input-group-text">                 <span class="fa fa-search"></span>               </div>             </div>           </div>         </form>         <!-- Navigation -->         <ul class="navbar-nav">           <li class="nav-item  class=" active" ">           <a class=" nav-link active " href=" index.php"> <i class="ni ni-tv-2 text-primary"></i> Dashboard             </a>           </li>          <li class="nav-item">             <a class="nav-link " href="#">               <i class="ni ni-satisfied text-orange"></i> Usuarios             </a>           </li>     <li class="nav-item" style="margin-left: 10px">             <a class="nav-link " href="tipoUsuario.php">              Cadastrar Tipo Usuario             </a>           </li>     <li class="nav-item" style="margin-left: 10px">             <a class="nav-link " href="usuario_hpac.php">              Cadastrar Usuario             </a>           </li>                     <li class="nav-item">             <a class="nav-link " href="#">               <i class="ni ni-shop text-blue"></i> Empresas             </a>           </li>     <li class="nav-item" style="margin-left: 10px">             <a class="nav-link " href="ramoAtividade.php">              Cadastrar Ramo de Atividade              </a>           </li>     <li class="nav-item" style="margin-left: 10px">             <a class="nav-link " href="formularioPJ.php">              Cadastrar Empresa              </a>           </li>           <li class="nav-item">             <a class="nav-link " href="#">               <i class="ni ni-single-02 text-yellow"></i> Cliente             </a>           </li>     <li class="nav-item" style="margin-left: 10px">             <a class="nav-link " href="formularioCliente.php">              Cadastrar Cliente              </a>           </li>                 <li class="nav-item">             <a class="nav-link " href="#">               <i class="ni ni-bullet-list-67 text-red"></i> Listar Tabelas             </a>           </li>           <li class="nav-item" style="margin-left: 10px">             <a class="nav-link " href="listarPJ.php">              Listar Empresas              </a>           </li>                      <li class="nav-item">             <a class="nav-link" href="./examples/login.html">               <i class="ni ni-key-25 text-info"></i> Login             </a>           </li>           <li class="nav-item">             <a class="nav-link" href="./examples/register.html">               <i class="ni ni-circle-08 text-pink"></i> Register             </a>           </li>         </ul>         <!-- Divider -->         <!-- Heading -->         <!-- Navigation -->         </div>     </div>   </nav>   <div class="main-content">     <!-- Navbar -->     <nav class="navbar navbar-top navbar-expand-md navbar-dark" id="navbar-main">       <div class="container-fluid">         <!-- Brand -->         <a class="h4 mb-0 text-white text-uppercase d-none d-lg-inline-block" href="./index.html">Dashboard</a>         <!-- Form -->         <!-- User -->         <ul class="navbar-nav align-items-center d-none d-md-flex">           <li class="nav-item dropdown">             <a class="nav-link pr-0" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">               <div class="media align-items-center">                 <span class="avatar avatar-sm rounded-circle">                   <img alt="Image placeholder" src="./assets/img/theme/team-4-800x800.jpg">                 </span>                 <div class="media-body ml-2 d-none d-lg-block">                   <span class="mb-0 text-sm  font-weight-bold"><?php echo $logado ?></span>                 </div>                 <div class="media-body ml-2 d-none d-lg-block">                   <span class="mb-0 text-sm  font-weight-bold"><?php echo $nivel ?></span>                 </div>               </div>             </a>             <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right">               <div class=" dropdown-header noti-title">                 <h6 class="text-overflow m-0">Bem-vindo</h6>               </div>               <div class="dropdown-divider"></div>               <a href="logout.php" class="dropdown-item">                 <i class="ni ni-user-run"></i>                 <span>Logout</span>               </a>             </div>           </li>         </ul>       </div>     </nav>     <!-- End Navbar --> <!-- Header -->     <div class="header bg-gradient-primary pb-8 pt-5 pt-md-8">       <div class="container-fluid">         <div class="header-body">           <!-- Card stats -->                      <div class="row">             <!-- inicio primeiro quadrado -->                          <div class="col-xl-3 col-lg-6">               <div class="card card-stats mb-4 mb-xl-0">                 <div class="card-body">                   <div class="row">                     <div class="col">                       <h5 class="card-title text-uppercase text-muted mb-0">Empresas</h5>             <?php                 include 'conexao/conexao.php';                 $sql = "SELECT COUNT(id_empresa) as quantidade FROM empresa";                 $busca = mysqli_query($conexao, $sql);                 $dados = mysqli_fetch_array($busca);                 $quantidade = $dados['quantidade'];             ?>                       <span class="h2 font-weight-bold mb-0"><?php echo $quantidade ?></span>                     </div>                     <div class="col-auto">                       <div class="icon icon-shape bg-danger text-white rounded-circle shadow">                         <i class="fas fa-chart-bar"></i>                       </div>                     </div>                   </div>                   <p class="mt-3 mb-0 text-muted text-sm">                      <span class="text-nowrap"></span>                   </p>                 </div>               </div>             </div>           <!-- fim primeiro quadrado -->           <!-- inicio segundo quadrado -->                          <div class="col-xl-3 col-lg-6">               <div class="card card-stats mb-4 mb-xl-0">                 <div class="card-body">                   <div class="row">                     <div class="col">                       <h5 class="card-title text-uppercase text-muted mb-0">Usuarios</h5>             <?php                 include 'conexao/conexao.php';                 $sql = "SELECT COUNT(id_usuario) as quantidade FROM usuario_hpac";                 $busca = mysqli_query($conexao, $sql);                 $dados = mysqli_fetch_array($busca);                 $quantidade = $dados['quantidade'];             ?>                       <span class="h2 font-weight-bold mb-0"><?php echo $quantidade ?></span>                     </div>                     <div class="col-auto">                       <div class="icon icon-shape bg-danger text-white rounded-circle shadow">                         <i class="fas fa-chart-pie"></i>                       </div>                     </div>                   </div>                   <p class="mt-3 mb-0 text-muted text-sm">                      <span class="text-nowrap"></span>                   </p>                 </div>               </div>             </div>           <!-- fim segundo quadrado -->                          <div class="col-xl-3 col-lg-6">               <div class="card card-stats mb-4 mb-xl-0">                 <div class="card-body">                   <div class="row">                     <div class="col">                       <h5 class="card-title text-uppercase text-muted mb-0">Alugados</h5>                              <?php                 include 'conexao/conexao.php';                 $sql = "SELECT COUNT(id_status_imovel) as quantidade FROM status_imovel WHERE status_imovel = 'Aluguel'";                 $busca = mysqli_query($conexao, $sql);                 $dados = mysqli_fetch_array($busca);                 $qtdaluguel = $dados['quantidade'];             ?>                                    <span class="h2 font-weight-bold mb-0"><?php echo $qtdaluguel ?></span>                     </div>                     <div class="col-auto">                       <div class="icon icon-shape bg-yellow text-white rounded-circle shadow">                         <i class="fas fa-users"></i>                       </div>                     </div>                   </div>                   <p class="mt-3 mb-0 text-muted text-sm">                        <?php                 $sql3 = "SELECT SUM(valor_negocio)as valortotal FROM status_imovel WHERE status_imovel = 'Aluguel'";                 $query = mysqli_query($conexao, $sql3);                 $dados3 = mysqli_fetch_array($query);                 $totalAluguel = $dados3['valortotal'];                 $totalAluguel;                 $porcento = $totalAluguel * 0.10;             ?>              <span class="text-success mr-2"><i class="fas fa-arrow-up"></i><?php echo number_format($porcento, 2, ',', '.') ?></span>                     <span class="text-nowrap">Lucro Alugueis</span>                   </p>                 </div>               </div>             </div>             <div class="col-xl-3 col-lg-6">               <div class="card card-stats mb-4 mb-xl-0">                 <div class="card-body">                   <div class="row">                     <div class="col">                       <h5 class="card-title text-uppercase text-muted mb-0">Lucro Bruto</h5>             <?php                 $totalbruto = $porcento + $total;                              ?>                 <span class="h2 font-weight-bold mb-0"><?php echo number_format($totalbruto, 2, ',', '.') ?></span>                     </div>                     <div class="col-auto">                       <div class="icon icon-shape bg-info text-white rounded-circle shadow">                         <i class="fas fa-percent"></i>                       </div>                     </div>                   </div>                   <p class="mt-3 mb-0 text-muted text-sm">             <?php             if($totalbruto > 0) {?>                         <span class="text-success mr-2"><i class="fas fa-arrow-up"></i>Saldo Positivo</span>             <?php } else {?>                     <span class="text-danger mr-2"><i class="fas fa-arrow-down"></i>Saldo Negativo</span>             <?php    }?>                   </p>                 </div>               </div>             </div>           </div>         </div>       </div>     </div> </body> </html> Diante disso, quero que alguém poste aqui uma sugestão contemplando os dois códigos, pois acredito que na primeira verificação usando AND ou WHERE eu estou acertando, mas o grande problema está na abertura da próxima página, que não estou conseguindo fazer. Acho que até checo a tabela, mas não estou conseguindo direcionar para a página certa.
    • By henrybrion
      Caros, estou criando um sistema de listagem de produtos em que os mesmos sejam apresentados de acordo com sua categoria.
      O sistema funciona da seguinte forma:
      Os dados são cadastrados no BD "mercado" na tabela produtos contendo 4 campos (id, produto, categoria e preço) e as categorias são cadastradas na tabela categoria contendo 2 campos (id e categoria).
      Na página produtos.php deve ser apresentado da seguinte forma:
      As categorias são relacionadas em TABs e os produtos em Tabela, de acordo com sua categoria, ou seja se tenho a categoria "Bebidas" deve ser apresentado todas as Bebidas desta categoria na TAB Bebidas e assim por diante.
      Porém não estou conseguindo fazer isso, só está sendo apresentado os produtos da primeira categoria e repetindo nas demais.
      Segue o código que estou usando para construção:
       
      Página Produtos.php
      <div class="container"> <h2>Lista de Produtos por Categoria</h2> <br><br> <?php include_once 'select_produtos.php'; ?> <ul class="nav nav-tabs nav-pills nav-justified"> <?php echo $categorias_menu; ?> </ul> <div class="tab-content"> <table class="table table-hover"> <thead class="thead-dark"> <tr> <th scope="col">Código</th> <th scope="col">Produto</th> <th class=" text-center" scope="col">Valor</th> </tr> </thead> <tbody> <?php echo $lista_produtos; //faz a chamada para a variável no arquivo "select_produtos.php" ?> </tr> </tbody> </table> </div> </div> Página Select_produtos.php
       
      <?php include_once 'conexao.php'; $categorias_sql = "SELECT * FROM categorias ORDER BY id ASC"; $categorias_result = mysqli_query( $connect, $categorias_sql ); $categorias_menu = ''; $produtos_query = "SELECT * FROM produtos ORDER BY produto ASC"; $produtos_result = mysqli_query( $connect, $produtos_query ) or die ("database error:". mysqli_error($connect)); $lista_produtos = ''; $i = 0; //EXIBIR O MENU - ABAS - DE CADA CATEGORIA while ( $categorias = mysqli_fetch_array( $categorias_result ) ) { if ( $i == 0 ) { $categorias_menu .= ' <li class="active"> <a href="#' . $categorias[ "id" ] . '" data-toggle="tab" role="tab">' . $categorias[ "categoria" ] . '</a> </li> '; $lista_produtos .= ' <div id="' . $categorias[ "id" ] . '" class="tab-pane fade in active"> '; } else { $categorias_menu .= ' <li> <a href="#' . $categorias[ "id" ] . '" data-toggle="tab" role="tab">' . $categorias[ "categoria" ] . '</a> </li> '; $lista_produtos .= ' <div id="' . $categorias[ "id" ] . '" class="tab-pane fade"> '; } $i++; //Verfica se existem produtos na tabela if(!mysqli_num_rows($produtos_result)) { $lista_produtos .= '<br>Produto não encontrado!'; }else{ //LISTANDO PRODUTOS NO FORMATO DE TABELA while ( $sub_row = mysqli_fetch_array( $produtos_result ) ) { if($sub_row['categoria_id'] == $categorias['id']){ $lista_produtos .= '<tr>'; $lista_produtos .= '<td class="text-uppercase">' . utf8_encode($sub_row[ "id" ]) . '</td>'; $lista_produtos .= '<td class="text-uppercase">' . utf8_encode($sub_row[ "produto" ]) . '</td>'; $lista_produtos .= '<td class="text-uppercase text-center">R$ ' . $sub_row[ "preco" ] . '</td>'; } } } } $lista_produtos .= '<div style="clear:both">'; ?> Onde está meu erro ou o que estou deixando de fazer aqui?
      Segue imagem da tela como quero que fique.
       
      Obrigado.

    • By Aureo Almeida
      Problema em definir largura e disposição horizontal de tabelas com resultado de while
      Como iniciante em programação estou tendo problemas para estilizar uma tabela dentro de um script PHP. Possuo o seguinte script:
      <?php $sql = 'SELECT * FROM psd_produtos'; $stmt = $conn->query($sql); echo '<table>'; while($row = $stmt->fetch(PDO::FETCH_OBJ)){ echo " <td> <tr><h1>$row->prd_nome <br /></h1></tr> <tr><p>$row->prd_detalhe <br /></p></tr> <tr>$row->prd_valor <br /></tr> </td> "; } echo '</table>'; ?> Ele funciona perfeitamente, buscando e produzindo um loop das informações que preciso, porém, gostaria que o resultado me retornasse em tabelas que ficasse dispostas horizontalmente lado a lado, e imaginei colocar uma classe CSS que estabelecesse a largura da tabela em 400px com um float que me permitiria alinhar o resultado em “4 colunas”. Porém, essa classe não funciona dentro do script.
      Tentei echo '<table class="tabela-produto">'; e não funciona.
      A mesma classe, que estabelece uma largura para a tabela, aplicada a uma tabela fora do script funciona e isso tirou minha dúvida se este tópico seria sobre CSS/HTML ou PHP.
      Como posso fazer para obter meu objetivo com este script, alinhando horizontalmente o resultado do while em tabelas dispostas horizontalmente em 4 colunas?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.