Jump to content


Photo

Sistema De Busca


  • Faça o login para participar
10 replies to this topic

#1 Ave Fenix

Ave Fenix

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Paranaíba-MS

Posted 12/08/2007, 09:55

Boa Noite Pessoa
Gostaria que alguem me explicace o motivo desse erro.
Eu acho que e na paginação mas nao consegui arumar.
Obrigado
Eu estou com um problema em um sistema de busca, eu coloco o nome Ex: nome do Fotografo e aparece normal na primeira pagina as fotos , mas na segunda endiante da esse erro abaixo.

Erro:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\galeria\busca.php on line 62
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%' ORDER BY id DESC LIMIT 5,5' at line 1


Linha 62
$numero = mysql_fetch_array($banco); //CRIA UM ARRAY COM TODAS AS TABELAS

Codigo do sistema
<? include("path.php");?><html><head><title>Procura de Baladas</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><script src="css/janelas_popup.js" language="JavaScript"></script><body bgCOLOR="#FE9800"><STYLE type=text/css>BODY {MARGIN: 0px}</STYLE><form name="form1" method="post" action="busca.php?busca=ok"><table width="450"  border="0" align="center" bgCOLOR="#FE9800" style="font-family:verdana;font-size:8pt;color:000000;background-color:FE9800"><tr><td colspan="2"><div align="center"><b>Como Procurar?</b><br>Ex.: Para os campos <b>Nome do Evento</b>, <b>Local</b> e <b>Fotografo</b>, apenas a <b>Data e ano</b> deverão ser digitados o número Ex.: "01" corresponde a janeiro assim por diante.</div></td></tr> <tr> <td colspan="2"><div align="center">Buscar : <input name="busca_que" type="text" class="style1"> </div> </td> </tr> <tr> <td colspan="2"><div align="center">Buscar Por : <select name="busca_quem" class="style1" id="select"> <option value="nome" selected>Nome Evento</option> <option value="local">Local</option> <option value="fotografo">Fotografo</option> <option value="mes">Mês</option> <option value="ano">Ano</option> </select> </div> </td> </tr> <tr> <td colspan="2"><div align="center"> <input name="Submit" type="submit" class="style1" value="Buscar"> </div> </td> </tr> <tr> <td width="70%"> <div align="left"><?phpif($_GET['busca'] == "ok"){ $op = $_POST['busca_quem']; $oque = $_POST['busca_que']; $banco = mysql_query("SELECT count(*) as total FROM gal_galeria WHERE $op LIKE '%$oque%'"); ## CONTA QUANTOS REGISTROS TEM ## $numero = mysql_fetch_array($banco); //CRIA UM ARRAY COM TODAS AS TABELAS $quantos = $numero['total']; $totalpag = ceil(($quantos)/5);if(!isset($_GET['start']))$_GET['start']=0; $start=$_GET['start']; $query_ult = mysql_query("SELECT * FROM gal_galeria WHERE $op LIKE '%$oque%' ORDER BY id DESC LIMIT $start,5") or die(print(mysql_error())); while($data_ult = mysql_fetch_array($query_ult)){?><a href="java script:AbreJanelaGaleria('janela.php?dir=images/galeria/<? echo "$data_ult[pasta]/&id=$data_ult[id]&evento=$data_ult[nome]&data=$data_ult[dia]/$data_ult[mes]/$data_ult[ano]&local=$data_ult[local]&id=$data_ult[id]&fotografo=$data_ult[fotografo]";?>')"><img src="imagemdimindex.php?imagem=images/galeria/<? echo $data_ult['pasta']?>/<? echo $data_ult['foto01']?>" border="1" align="left"></a>                 <?php echo "<b>Nome Evento :</b>".$data_ult['nome']."<br>"; echo "<b>Local :</b>".$data_ult['local']."<br>"; echo "<b>Data :</b>".$data_ult['dia']."/".$data_ult['mes']."/".$data_ult['ano']."<br><br>"; $passou = "ok";}?></div></td>               </tr>               <tr>                 <td height="79" colspan="2"><div align="center"><?php if($totalpag>1)    { ## PAGINAÇÃO, SE TIVER MAIS QUE UMA PAGINA ##    for($i=1; $i<=$totalpag; $i++) ## UM LACO QUE PEGA ATEH QUANTAS PÁGINAS TERÁ ##    {    if(5*($i-1)==$start) ## SE ESTIVER NA PÁGINA OU SEJA FOR IGUAL A VARIAVEL STAR, A PÁGINA FICA EM NEGRITO ##    {     echo " | <b>$i</b>";    }    else    {    $aevi = 5*($i-1);     echo " | <a href=\"busca.php?busca=ok&start=$aevi\"><b>$i</b></a> ";    } ## CASO CONTRARIO MOSTRA AS OUTRAS PÁGINAS PARA SE NAVEGAR ##    }    }    $agora = ($start/5)+1; ## PEGA A PÁGINA ATUAL ##    $todas = $totalpag; ## PEGA O TOTAL DE PÁGINA ##    if($passou != "ok"){      echo "Desculpe mas não foram encontrados resultados para sua busca !!!<br>";    }    else{    echo "<br><br><br>Exibindo página $agora de $todas páginas<br>"; ## MOSTRA AS VARIAVEIS ##    }      }     ?></div></td></tr></table><br><br></form></body></html>

Edição feita por: savior, 12/08/2007, 16:26.
Utilize tags [codebox] na próxima vez!

WebDesigner, PHP, MySQL, jQuery e Desenvolvimento WEB
www.luizcarlosfs.com.br www.paradadez.com.br
Luiz Carlos F.S - Desenvolvedor PHP Pleno

#2 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 12/08/2007, 12:59

Tente mudando isto:
if($_GET['busca'] == "ok"){
$op = $_POST['busca_quem'];
$oque = $_POST['busca_que'];
$banco = mysql_query("SELECT count(*) as total FROM gal_galeria WHERE $op LIKE '%$oque%'"); ## CONTA QUANTOS REGISTROS TEM ##
$numero = mysql_fetch_array($banco); //CRIA UM ARRAY COM TODAS AS TABELAS
$quantos = $numero['total'];
$totalpag = ceil(($quantos)/5);

Para isto:
if($_GET['busca'] == "ok"){
$op = $_POST['busca_quem'];
$oque = $_POST['busca_que'];
$banco = mysql_query("SELECT * FROM gal_galeria WHERE $op LIKE '%$oque%'"); 
$numero = mysql_num_rows($banco); //CRIA UM ARRAY COM TODAS AS TABELAS
$quantos = $numero;
$totalpag = ceil(($quantos)/5);[quote][/quote]


#3 Ave Fenix

Ave Fenix

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Paranaíba-MS

Posted 12/08/2007, 14:12

B!ö$
valeu por ajudar mais nao funcionou
Deu esse erro o mesmo que o anterior


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\galeria\busca.php on line 62
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%' ORDER BY id DESC LIMIT 5,5' at line 1

WebDesigner, PHP, MySQL, jQuery e Desenvolvimento WEB
www.luizcarlosfs.com.br www.paradadez.com.br
Luiz Carlos F.S - Desenvolvedor PHP Pleno

#4 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 12/08/2007, 14:58

Verifique se a coluna $op existe na tabela do banco de dados.

#5 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 12/08/2007, 16:27

@Ave Fenix

Utilize tags [codebox*] (sem o asterisco) para trechos de código MUITO longos

Experimente ao final de cada mysql_query()/mysql_num_rows colocar um die(mysql_error());

Você poderá ver o porque que o negócio deu erro.

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#6 Ave Fenix

Ave Fenix

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Paranaíba-MS

Posted 12/08/2007, 17:10

B!ö$
a variavel $op e informada no formulario para informar qual coluna procurar
Pelo metodo $_POST
obrigado


Savior valeu a dica
e Desculpa ai pelo codigo longo e que quase nao crio topico , eu geralmente so so leios os topicos
O erro que esta dando agora e esse

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%'' at line 1

obrigado
WebDesigner, PHP, MySQL, jQuery e Desenvolvimento WEB
www.luizcarlosfs.com.br www.paradadez.com.br
Luiz Carlos F.S - Desenvolvedor PHP Pleno

#7 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 12/08/2007, 17:34

a variavel $oque está sendo passada em branco.

Verifique se ela está recendo mesmo o $_POST['busca_que'];

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#8 Ave Fenix

Ave Fenix

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Paranaíba-MS

Posted 12/08/2007, 18:26

savior

a variavel $oque esta enviando normal
eu fiz um teste aqui se eu mudar $oque e definir a coluna no select

ex:
$banco = mysql_query("SELECT * FROM gal_galeria WHERE ano LIKE '%$oque%'");

ele mostra a primeira pagina normal mas quando eu mudo de pagina para a 2 ou outra ele ja mostra todos, ao invez de mostrar so o que eu fiz a busca.
Ele esta perdendo as informações depois que muda de pagina

obrigado
WebDesigner, PHP, MySQL, jQuery e Desenvolvimento WEB
www.luizcarlosfs.com.br www.paradadez.com.br
Luiz Carlos F.S - Desenvolvedor PHP Pleno

#9 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 12/08/2007, 18:45

Voce tem definir as variaveis nos links, ex:
busca.php?busca=ok&start=$aevi&busca_quem=$op&busca_que=$oque

Abraços

Edição feita por: B!ö$, 12/08/2007, 18:46.


#10 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 12/08/2007, 19:29

troque o $_POST['busca_que'] por $_REQUEST['busca_que'] ... dae ele pega tanto get como post.

(y)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#11 Ave Fenix

Ave Fenix

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino
  • Localidade:Paranaíba-MS

Posted 14/08/2007, 00:28

valeu galera , mas nao funcionou
alguem sabe de um sistema de busca que tem paginação
pode ser qualquer um, depois eu arumo ele do jeito que eu quero.
so presciso que ele de a opção de escolher o campo e buscar a palavra nesse campo com paginação.
Obrigado
WebDesigner, PHP, MySQL, jQuery e Desenvolvimento WEB
www.luizcarlosfs.com.br www.paradadez.com.br
Luiz Carlos F.S - Desenvolvedor PHP Pleno




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq