Ir para conteúdo

POWERED BY:

Arquivado

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

rafamagalhaes

Consulta PHP MySQL

Recommended Posts

Amigos,

 

Estou com problema para estabelecer uma consulta com condição em PHP no mysql. Segue o código!

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <?php
            $connect = mysql_connect("localhost", "root", "");
            mysql_select_db("pip", $connect);
        ?>   
    </head>
    <body bgcolor="#6295E9">
        <div align="center" id="busca">
            <h3>Busca Cliente por Nome</h3>
            <form action="" enctype="multipart/form-data" name="cliente---ome" method="POST">
                <table style="margin: 0 auto; font-family: Arial;">
                    <tr>
                        <td>Digite o nome que deseja buscar:</td>
                    </tr>
                    <tr>
                        <td><input type="text" size="40" name="buscar"/></td>
                    </tr>
                    <tr>
                        <td><input type="submit" name="enviar" value="Buscar"/></td>
                    </tr>                    
                </table>
                <table border="1" style="margin: 0 auto; font-family: Arial;">
                    <tr>
                        <td>Nome</td><td>E-mail</td><td>Endereço</td><td>Número</td><td>Complemento</td><td>Bairro</td><td>Cidade</td><td>UF</td><td>Contato</td><td>Telefone</td><td>Celular</td>
                    </tr>
                    <tr>
                        <?php
                            $buscarcliente = $_POST['buscar'];
                            $sql_busca = mysql_query("SELECT * FROM cliente WHERE nome LIKE '%$buscarcliente%'");
                            If ($sql_busca == NULL)
                            {
                                echo 'Não existe registros a serem exibidos';
                            }
                            else 
                            {
                                while ($resultado = mysql_fetch_array($sql_buca))
                                {
                                    $nome = $resultado['nome'];
                                    $email = $resultado['email'];
                                    $endereco = $resultado['endereco'];
                                    $num_ende = $resultado['num_ende'];
                                    $comp_ende = $resultado['comp_ende'];
                                    $bairro = $resultado['bairro'];
                                    $cidade = $resultado['cidade'];
                                    $uf = $resultado['uf'];
                                    $contato = $resultado['contato'];
                                    $tel = $resultado['tel'];
                                    $cel = $resultado['cel'];                                        
                        ?>
                    </tr>
                    <tr>
                        <td><php echo $nome ?></td><td><php echo $email ?></td><td><php echo $endereco ?></td><td><php echo $num_ende ?></td><td><php echo $comp_ende ?></td><td><php echo $bairro ?></td><td><php echo $cidade ?></td><td><php echo $uf ?></td><td><php echo $contato ?></td><td><php echo $tel ?></td><td><php echo $cel ?></td>
                    </tr>
                    <tr>
                        <?php
                                }
                            }
                        ?>
                    </tr>
                </table>
            </form>
        </div>
    </body>
</html>
 
Me ajudem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

rafamagalhaes, tente ser um pouco mais claro, dizer que tem um problema sem falar qual é o problema não adianta nada... o que observei no seu código foi um:

 

If ($sql_busca == NULL)

 

Não sei de onde você tirou isto, você deve usaro mysql_num_rows para determinar quantas linhas retornaram e ai utilizar isto no if.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto vai mostrar o erro.

 

$sql_busca = mysql_query("SELECT * FROM cliente WHERE nome LIKE '%$buscarcliente%'") OR DIE(mysql_error());

Faça a alteração que eu falei anteriormente também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, imagino que você não tenha alterado o if que eu citei também, alterei ele, provavelmente a sua consulta não está retornando nada, isto também geraria o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comentei a o IF e o mesmo Warning ocorre.

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <?php
            $connect = mysql_connect("localhost", "root", "");
            mysql_select_db("pip", $connect);
        ?>   
    </head>
    <body bgcolor="#6295E9">
        <div align="center" id="busca">
            <h3>Busca Cliente por Nome</h3>
            <form action="" enctype="multipart/form-data" name="cliente---ome" method="POST">
                <table style="margin: 0 auto; font-family: Arial;">
                    <tr>
                        <td>Digite o nome que deseja buscar:</td>
                    </tr>
                    <tr>
                        <td><input type="text" size="40" name="buscar"/></td>
                    </tr>
                    <tr>
                        <td><input type="submit" name="enviar" value="Buscar"/></td>
                    </tr>                    
                </table>
                <table border="1" style="margin: 0 auto; font-family: Arial;">
                    <tr>
                        <td>Nome</td><td>E-mail</td><td>Endereço</td><td>Número</td><td>Complemento</td><td>Bairro</td><td>Cidade</td><td>UF</td><td>Contato</td><td>Telefone</td><td>Celular</td>
                    </tr>
                    <tr>
                        <?php
                            $buscarcliente = $_POST['buscar'];
                            $sql_busca = mysql_query("SELECT * FROM cliente WHERE nome LIKE '%$buscarcliente%'") OR DIE(mysql_error());
                            /*If ($sql_busca == NULL)
                            {
                                echo 'Não existe registros a serem exibidos';
                            }
                            else 
                            {*/
                                while ($resultado = mysql_fetch_array($sql_buca))
                                {
                                    $nome = $resultado['nome'];
                                    $email = $resultado['email'];
                                    $endereco = $resultado['endereco'];
                                    $num_ende = $resultado['num_ende'];
                                    $comp_ende = $resultado['comp_ende'];
                                    $bairro = $resultado['bairro'];
                                    $cidade = $resultado['cidade'];
                                    $uf = $resultado['uf'];
                                    $contato = $resultado['contato'];
                                    $tel = $resultado['tel'];
                                    $cel = $resultado['cel'];                                        
                        ?>
                    </tr>
                    <tr>
                        <td><php echo $nome ?></td><td><php echo $email ?></td><td><php echo $endereco ?></td><td><php echo $num_ende ?></td><td><php echo $comp_ende ?></td><td><php echo $bairro ?></td><td><php echo $cidade ?></td><td><php echo $uf ?></td><td><php echo $contato ?></td><td><php echo $tel ?></td><td><php echo $cel ?></td>
                    </tr>
                    <tr>
                        <?php
                                }
                            //}
                        ?>
                    </tr>
                </table>
            </form>
        </div>
    </body>
</html>
 

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\xampp\htdocs\pip\cliente---ome.php on line 43

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos usar a cabeça: Se o problema reside no fato da consulta não retornar nada, o correto é:

1 - Comentar o IF;

2 - Verificar se a consulta retorna alguma coisa e caso não retorne mostra um erro em vez de forçar o fetch.

Acredito que o correto é o "2", então na realidade você conseguiu piorar o que já estava ruim... faça como eu disse, use o mysql_num_rows para contar a quantidade de linhas, para facilitar para você abaixo já está a sintaxe exata, é copiar/colar, assim acredito que você resolve o problema e de quebra ainda não usa o cérebro:

Substitua:

 

If ($sql_busca == NULL)

 

Por:

 

If (mysql_num_rows($sql_busca) <= '0')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro BEM claro: ;)

 

(...)

$sql_busca = mysql_query("SELECT * FROM cliente WHERE nome LIKE '%$buscarcliente%'") OR DIE(mysql_error());

(...)

while ($resultado = mysql_fetch_array($sql_buca))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda!!! Mas na verdade o problema decorria devido a eu ter engolido a letra "s" da variável sql_busca no fetch_array.

 

Mas agora estou com outro problema.

 

Minha consulta não retorna nada.

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("pip", $connect);
?>
</head>
<body bgcolor="#6295E9">
<div align="center" id="busca">
<h3>Busca Cliente por Nome</h3>
<form action="" enctype="multipart/form-data" name="cliente---ome" method="POST">
<table style="margin: 0 auto; font-family: Arial;">
<tr>
<td>Digite o nome que deseja buscar:</td>
</tr>
<tr>
<td><input type="text" size="40" name="buscar"/></td>
</tr>
<tr>
<td><input type="submit" name="enviar" value="Buscar"/></td>
</tr>
</table>
<table border="1" style="margin: 0 auto; font-family: Arial;">
<tr>
<td>Nome</td><td>E-mail</td><td>Endereço</td><td>Número</td><td>Complemento</td><td>Bairro</td><td>Cidade</td><td>UF</td><td>Contato</td><td>Telefone</td><td>Celular</td>
</tr>
<tr>
<?php
$buscarcliente = $_POST['buscar'];
$sql_busca = mysql_query("SELECT * FROM cliente WHERE nome LIKE '%$buscarcliente%'") OR DIE(mysql_error());
while ($resultado = mysql_fetch_array($sql_busca))
{
$nome = $resultado['nome'];
$email = $resultado['email'];
$endereco = $resultado['endereco'];
$num_ende = $resultado['num_ende'];
$comp_ende = $resultado['comp_ende'];
$bairro = $resultado['bairro'];
$cidade = $resultado['cidade'];
$uf = $resultado['uf'];
$contato = $resultado['contato'];
$tel = $resultado['tel'];
$cel = $resultado['cel'];
?>
</tr>
<tr>
<td><php echo $nome ?></td><td><php echo $email ?></td><td><php echo $endereco ?></td><td><php echo $num_ende ?></td><td><php echo $comp_ende ?></td><td><php echo $bairro ?></td><td><php echo $cidade ?></td><td><php echo $uf ?></td><td><php echo $contato ?></td><td><php echo $tel ?></td><td><php echo $cel ?></td>
</tr>
<tr>
<?php
}
?>
</tr>
</table>
</form>
</div>
</body>
</html>
O que pode estar errado?
Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade o problema decorria devido a eu ter engolido a letra "s" da variável

 

exatamente; foi o que eu disse; só comparar as 2 linhas:

$sql_busca = mysql_query("SELECT * FROM cliente WHERE nome LIKE '%$buscarcliente%'") OR DIE(mysql_error());
while ($resultado = mysql_fetch_array($sql_buca))

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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