Ir para conteúdo

POWERED BY:

Arquivado

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

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'); ?>

Compartilhar este post


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

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
×

Informação importante

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