problema com sript de busca em PHP

Dúvidas sobre MySQL, PHPMyAdmin, SQL e assuntos relacionado a banco de dados.

Moderador: web

responder a dúvida

problema com sript de busca em PHP

Mensagem por jujuba Offline » Qui Jan 12, 2012 10:45 am


Ola, sou nova por aqui e estou elaborando um site em php. Meu problema está nas buscas. Onde quando eu digito algo na caixa de pesquisa a busca retorna TODOS os valores inseridos na tabela.


minha tabela é dado
suas colunas sao: id_estado, id_local, descricao, ano, id_tipo_dado, arquivo, id_dado

Enviarei meu codigo:

Código: Selecionar todos
<table class="estilotabela">
<tr><td colspan=2 class="estilocelulatitulo">Pesquisa recurso</td></tr>
<form method="POST"action=<?php echo $_SERVER["PHP_SELF"] . "?dir=" . $_GET["dir"] . "&" . "pagina=" . $_GET["pagina"];?> name="opa">
<tr><td class="estilocelulaesquerda">Buscar:</td>
   <td class="estilocelulaesquerda"><input type="text"  name="busca"></td>
</tr>


<tr>
    <td class="estilocelulaesquerda">Ordenar por:</td>
    <td class="estilocelulaesquerda">
        <select name="ordenapor">
            <option value="id_estado"<Estado</option>
            <option value="id_local">Local</option>
            <option value="id_tipo_dado">Tipo de dado</option>
            <option value="ano">Ano</option>
        </select>
    </td>
</tr>

<tr><td colspan=2 class="estilocelula"><input type="submit" value="Enviar" name="bot"></td></tr>



</table>
</form>
<br>


<?php


$result = mysql_query("SELECT * FROM dado ORDER BY id_tipo_dado");

if (isset ($_POST["bot"])) {
    $result = mysql_query("SELECT * FROM `dado'  "%' ORDER BY " . $_POST["ordenapor"]);

$sql = "SELECT * FROM `dado`" like  '%" . $_POST["busca"] . "%'";

      while ($row = mysql_fetch_array($result)) {

        $sql = $sql . "AND (id_recurso != " . $row['id_recurso'] . ")";

      }

      $sql = $sql . "ORDER BY " . $_POST["ordenapor"];


$result = mysql_query($sql)



?>

     <table class="estilotabela">

     <tr>
        <td class="estilocelulatitulo">Estado</td>
        <td class="estilocelulatitulo">Tipo de dado</td>
        <td class="estilocelulatitulo">Descrição</td>
        <td class="estilocelulatitlo">Ano</td>
        <td class="estilocelulatitlo">Download </td>

       
      </tr>

           <?php


           echo "<form method='POST'action=" . $_SERVER['PHP_SELF'] . "?dir=" . $_GET["dir"] . "&" . "pagina=" . $_GET["pagina"] . " name='opa'>";

           while ($row = mysql_fetch_array($result)) {
             echo "<tr>";
             echo "<td class=estilocelula width=100px>" . $row["id_estado"] . "</td>";
             echo "<td class=estilocelula>" . $row["id_tipo_dado"] . "</td>";
        echo "<td class=estilocelula width=100px>" . substr($row["descricao"] . "</td>";
             echo "<td class=estilocelula width=100px>" . substr($row["ano"]. "</td>";
             echo "<td class=estilocelula width=100px>" . substr($row["arquivo"] . "</td>";

             
             echo "</tr>";
           }
           echo "</form> ";


       ?>
</table>

Obrigada ;)

MOVIDO PARA MYSQL



detalhes...


jujuba
MEMBRO
MEMBRO
Mensagens: 15
Registrado em: Qui Jan 12, 2012 10:27 am


problema com sript de busca em PHP

Mensagem por web Offline » Qui Jan 12, 2012 11:04 am

Tem alguns erros ai, por exemplo, você tem várias querys. Essa antes do if não seria necessária.

Agora nessas

$result = mysql_query("SELECT * FROM `dado' "%' ORDER BY " . $_POST["ordenapor"]);

$sql = "SELECT * FROM `dado`" like '%" . $_POST["busca"] . "%'";

Deveria ser uma só, por exemplo

$result = mysql_query("SELECT * FROM dado WHERE colunatal LIKE '%". $_POST["busca"] ."%' ORDER BY ".$_POST["busca"]." ");

Ai você tem que verificar ai os nomes das colunas que vai usar.

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12460
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

problema com sript de busca em PHP

Mensagem por jujuba Offline » Qui Jan 12, 2012 11:25 am

Obrigada pela ajuda, mas assim que fiz a modificaçao ocorreu um erro no meu while do fim do fim do script (notice: undefined variable e warning: mysql_fetch_array() expects parameter 1 to be resource null given in..)

O que há de errado?

detalhes...


jujuba
MEMBRO
MEMBRO
Mensagens: 15
Registrado em: Qui Jan 12, 2012 10:27 am


problema com sript de busca em PHP

Mensagem por web Offline » Qui Jan 12, 2012 12:43 pm

Você usa 2 whiles com a mesma query. Tem que criar uma segunda query para o segundo while.

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12460
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

problema com sript de busca em PHP

Mensagem por jujuba Offline » Sex Jan 20, 2012 11:06 am

Obrigada, vou tentar novamente!

detalhes...


jujuba
MEMBRO
MEMBRO
Mensagens: 15
Registrado em: Qui Jan 12, 2012 10:27 am



responder a dúvida

Voltar para MySQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes