Jump to content
Lucas_R22

Buscar conteudo de uma linha no mysql pelo id

Recommended Posts

Então galera, estou desenvolvendo um crud, e nele tenho uma pagina onde busco certo produto e ele me lista de acordo com o que eu busquei, só que na parte de categoria, ele está mostrando pelo id do sql, e o que estou tentando fazer é colocar o nome da categoria. estarei deixando o código do arquivo produtos.php, a foto do navegador e da tabelo no mysql.

 

link das fotos explicando:
https://drive.google.com/open?id=1c6rRKTqIubHf98W0-wcJVKhsn_li1HNv

 

código:

<?php
include_once('../includes/conexao.php');
$busca = '';
if(isset($_GET['busca'])) {
    $busca = $_GET['busca'];
}
if($busca != ''){
    $sql_produtos = "SELECT * FROM produtos WHERE nome LIKE '%$busca%' ORDER BY id DESC";
}else{
    $sql_produtos = "SELECT * FROM produtos ORDER BY id DESC";
}

$query_produtos = mysqli_query($conexao, $sql_produtos);

$produtos = mysqli_fetch_all($query_produtos);

?>
<?php 
include('../layout/header.php'); 
include('../layout/menu.php'); 
?>    
<div class="row">
    <div class="col-6 ">
        <form class="form-inline">
            <div class="form-group">
                <input type="text" name="busca" id="busca" class="form-control" required placeholder="Digite o termo da busca" value="<?php echo $busca; ?>">
                <button type="submit" class="btn btn-primary" title="Pesquisar">
                    <i class="fas fa-search"></i>
                </button>
                <a href="produtos.php" class="btn btn-warning" title="Limpar pesquisa">
                    <i class="fas fa-times"></i>
                </a>
            </div>
        </form>
    </div>
    <div class="col-3 offset-md-3" >
        <a href="<?php echo $path ?>produtos/form_produto.php" class="btn btn-success" title="Novo produto">
            <i class="fas fa-plus" ></i> Novo produto
        </a>
    </div>
</div>
        <h2>
            Listagem de produtos
            <small><span class="badge badge-secondary"><?php echo count($produtos); ?> produto(s)</span></small>
        </h2>
        <table class="table table-hover table-striped table-bordered">
            <tr class="text-center">
                <th>Descrição do Produto</th>
                <th>Valor do Produto</th>
                <th>Categoria</th>
                <th>Ações</th>
            </tr>
            <?php 
                for ($i=0; $i < count($produtos); $i++) { 
            ?>
            <tr>
                <td><?php echo $produtos[$i]["1"]; ?></td>
                <td>R$ <?php echo number_format($produtos[$i]["2"],2,',','.') ?></td>
                <td><?php echo $produtos[$i]["3"] ?></td>
                <td>
                    <a href="form_produto.php?id=<?php echo $produtos[$i]["0"]; ?>" class="btn btn-warning" title="Editar">
                        <i class="fas fa-pencil"></i>
                    </a>
                    <a href="delete_produto.php?id=<?php echo $produtos[$i]["0"]; ?>" class="btn btn-danger" onclick="return confirm('Deseja realmente deletar?')" title="Deletar">
                        <i class="fas fa-trash"></i>
                    </a>
                </td>
            </tr>
            <?php } ?>
        </table>
        <?php 
            if(empty($produtos)) {
         ?>
             <div class="alert alert-info text-center">Não foram encontrados produtos cadastrados.</div>
        <?php } ?>

<?php include('../layout/footer.php'); ?>

Share this post


Link to post
Share on other sites

Você precisa fazer um INNER JOIN na sua consulta para apresentar o nome, no exemplo abaixo estou considerando que você tenha uma tabela categoria 

SELECT P.idProduto AS idProduto, P.idCategoria AS idCategoriaProduto,   P.nomeProduto AS nomeProduto, C.idCategoria AS C.idCategoria,  C.nomeCategoria AS nomeCategoria FROM produtos AS P INNER JOIN tabelaCategorias AS C ON P.idCateoriaProduto = C.idCategoria   WHERE nome LIKE '%$busca%' ORDER BY id DESC

 

E na hora de exibir os campos tu coloca os alias tipo nomeProduto, nomeCategoria

Seria mais ou menos, pelo que entendi, estuda direitinho pois escrevi o código sem testar.

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 fideles
      Pessoal, tenho uma dúvida, talvez muito boba.
       
      Tenho um formulario com os input em array, e um alert javascript mostrando que foi registrado com suceso.
       
      O problema maior é que se for gravado 30 registro no banco de dados, ele mostra 30 alertas de registro gravado com suceso, por acaso é possivel limitar esse tanto de alerta para somente 1 independente da quantidade que ele grava no banco ?
    • By violin101
      Caros amigos, saudações...
       
      Desculpa em recorrer ao auxílio dos amigos.
       
      Como consigo realizar ORDENAÇÃO de Tabela usando Radio button ?

      por Exemplo:
      ordenar por: [ ]Código  ou  [ ]Descrição.
       
      Grato,
       
      Cesar
    • By Sapinn
      Como mudar o cor da letra de um active em um menu no boostrtrap
       
      <nav class="navbar navbar-expand-lg navbar-light bg-light">         <div class="container">           <a class="navbar-brand" href="#">             <img src="icone.png" height="60px" alt="Logo">           </a>           <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">             <span class="navbar-toggler-icon"></span>           </button>                  <div class="collapse navbar-collapse d-lg-flex justify-content-end" id="navbarSupportedContent" style="font-size: 20px;">             <ul class="navbar-nav" >               <li class="nav-item active" >                 <a class="nav-link" href="#">Inicio</a>               </li>               <li class="nav-item" >                 <a class="nav-link" href="#">Login</a>               </li>               <li class="nav-item">                 <a class="nav-link" href="#">Aluno</a>               </li>               <li class="nav-item">                 <a class="nav-link" href="#">Professor</a>               </li>               <li class="nav-item">                 <a class="nav-link" href="#">Fale Conosco</a>               </li>             </ul>           </div>                </div>       </nav>  
    • By Diego-SLP
      Bom dia,
       
      Estou fazendo uma tela de relatorios de registro de ponto e não estou conseguindo totalizar as horas conforme trago do banco de dados, se alguem puder me ajudar.
       
      SELECT p.cod_obra,f.nome,o.obra, TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(p.totalhora))),'%H:%i') AS hora, TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(p.totalhoraextra))),'%H:%i') AS horaextra, f.funcao FROM rh_pontoFuncionario p, rh_funcionario f, rh_obra o WHERE p.data BETWEEN '2020/10/01' AND '2020/11/20' AND p.cod_obra = '20056' AND p.cod_func = f.cod AND p.cod_obra = o.cod GROUP BY p.cod_obra, f.nome Essa query me traz COD_OBRA,NOME,OBRA,HORA,HORAEXTRA,FUNCAO e eu gostaria de TOTALIZAR o campo HORA e HORAEXTRA somando todas as linhas mas não consigo
×

Important Information

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