Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta SQL retornando todos os registros


Adyson Alves

Pergunta

Boa tarde pessoal,

Criei um sistema básico de consulta, para que os clientes do meu site consigam saber o status do seu pedido. Está funcionando diretinho, porém ao digitar um valor que não seja o código do pedido ele acaba retornando todos os registros que estão na tabela.

Exemplo: o cliente digita o número 1, ele lista todos os pedidos que contenham 1 no código.

Gostaria de retornar apenas 1 registro desde que o código seja exato ao que tenho no BD e não todos os registros que contenham tal número ou então limitar a exibição para apenas 1 registro.

 

Código do meu arquivo principal de busca:

<form action="" class="form-inline">
        <input class="form-control" name="pedido" id="codigo" value="<?php if(isset($_GET['pedido'])) echo $_GET['pedido']; ?>" placeholder="Código do pedido" type="tel" autocomplete="off" required >
        
        <button type="submit" class="btn btn-danger btn-lg" style="margin-left: 5px; margin-bottom: 15px;">Verificar</button>
    </form>
    </center>
    <br>
    <table class="table table-sm">
        <tr>
            <th>Pedido</th>
            <th>Cliente</th>
            <th>Status</th>
        </tr>
        <?php
        if (!isset($_GET['pedido'])) {
            ?>
        <tr>
            <td colspan="3">Digite o código do seu pedido para verificar...</td>
        </tr>
        <?php
        } else {
            $pesquisa = $mysqli->real_escape_string($_GET['pedido']);
            $sql_code = "SELECT * 
                FROM ws_pedidos 
                WHERE codigo_pedido LIKE '%$pesquisa%' 
                OR codigo_pedido LIKE '%$pesquisa%'
                OR status LIKE '%$pesquisa%'";
            $sql_query = $mysqli->query($sql_code) or die("ERRO ao consultar! " . $mysqli->error); 
            
            if ($sql_query->num_rows == 0) {
                ?>
            <tr>
                <td colspan="3"><b>Nenhum pedido encontrado...</b></td>
            </tr>
            <?php
            } else {
                while($dados = $sql_query->fetch_assoc()) {
                    $dados = str_replace("%20"," ", $dados);
                    ?>
                    <tr>
                        <td><b>#<?php echo $dados['codigo_pedido']; ?></b></td>
                        <td><?php echo $dados['nome']; ?></td>
                        <td><b><?php echo $dados['status']; ?></b></td>
                    </tr>
                    <?php
                }
            }
            ?>
        <?php
        } ?>
    </table>

 

Editado por Adyson Alves
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Recomendo fazer a consulta diretamente no ambiente MySQL e quando você obter o resultado que você espera, aí sim você vai para o PHP. Use recursos mais básicos, depois é que você se preocupa com as aparências.

<form>
    <input name=pedido placeholder="Número do pedido" required><p>
    <input type=submit>
</form>
<?php
if (!isset($_GET['pedido'])) {exit;}
$pesquisa=$_GET['pedido'];
$mysqli=new mysqli("localhost","root","","astudy");
$query=$mysqli->query("select * from tbpedido where ped=$pesquisa");
if($query->num_rows==0) {echo "Nenhum pedido encontrado";exit;}
$rows=$query->fetch_all(MYSQLI_ASSOC);
var_dump($rows);

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...