Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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é?

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por cesarhtc
      Boa noite, estou precisando copiar tabelas oracle, como são muitas tabelas só quero copiar somente aquelas que foram alteradas em seus registros ou estrutura no dia (diariamente).
       
      desde já agradeço.
    • Por 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 */;
       

    • Por 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"  
       
    • Por 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.
    • Por 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.

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.