..:: MX Studio Fóruns ::..: Sistema de Busca - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Sistema de Busca Simples, mas não funciona

#1 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 18 June 2007 - 01:44 AM

Pessoal , há muito tempo não utilizo o código de Buscas do PHP, mas agora estou com problemas , se eu não digito nada não aparece os erros, mas se eu digitar qualquer coisa e buscar aparece o erro:

QUOTE
Notice: Use of undefined constant palavra - assumed 'palavra' in c:\arquivos de programas\easyphp1-8\www\busca.php on line 19

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\busca.php on line 22
Sua busca retornou '' resultados.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\busca.php on line 24


o Código é esse :

CODE
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>

<?php


$conexao=mysql_connect("localhost","user","user")
or die("Falha na Conexão");

$db=mysql_select_db("banco")
or die("Falha ao Selecionar Banco de Dados");

if(!empty($HTTP_POST_VARS["palavra"])) {

        $palavra = str_replace(" ", "%", $HTTP_POST_VARS[palavra]);
        $qr = "SELECT * FROM noticias WHERE  LIKE '%".$palavra."%' ORDER BY codigo DESC";
        $sql = mysql_query($qr);        
        $total = mysql_num_rows($sql);
        echo "Sua busca retornou '$total' resultados.";        
        while($r = mysql_fetch_array($sql)) {
                echo "<hr>";
                echo $r["noticia"];
        }
}
?>


Ajudem me Por Favor.
0

#2 User is offline   Wanderson Regis 

  • Group: Moderadores
  • Posts: 1275
  • Joined: 10-January 05

Posted 18 June 2007 - 09:50 AM

Será que tem haver com isso:
$palavra = str_replace(" ", "%", $HTTP_POST_VARS[palavra]);
logo abaixo da sua condicional? Talvez usando aspas em palavra:
$palavra = str_replace(" ", "%", $HTTP_POST_VARS["palavra"]);
0

#3 User is offline   c0pp3rf13ld 

  • Group: Membros
  • Posts: 118
  • Joined: 09-February 05

Posted 18 June 2007 - 10:53 AM

Apartir da versão 4.1.0 do php vc já pode utilizar $_POST ao inves de $HTTP_POST_VARS

Sintaxe - $_POST['name']
0

#4 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 18 June 2007 - 04:38 PM

Pessoal fiz as alterações recomendadas ficou assim :

CODE
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>

<?php

$conexao=mysql_connect("localhost","user","user")
or die("Falha na Conexão");

$db=mysql_select_db("banco")
or die("Falha ao Selecionar Banco de Dados");

>>  if(!empty($_POST['palavra'])) {

   >>     $palavra = str_replace(" ", "%", $_POST["palavra"]);
    $qr = "SELECT * FROM noticias WHERE '%".$palavra."%' ORDER BY codigo DESC";
        $sql = mysql_query($qr);        
  >>>>LINHA  22>> >   $total = mysql_num_rows($sql);
        echo "Sua busca retornou '$total' resultados.";        
  >>>>LINHA 24 >>>     while($r = mysql_fetch_array($sql)) {
                echo "<hr>";
                echo $r["noticia"];
        }
}
?>


Só que estou com o seguinte erro:

QUOTE
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\busca.php on line 22
Sua busca retornou '' resultados.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\busca.php on line 24

0

#5 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 19 June 2007 - 11:59 AM

Pessoal por favor me ajude a criar esse sistema de busca simples .obrigado
0

#6 User is offline   Wanderson Regis 

  • Group: Moderadores
  • Posts: 1275
  • Joined: 10-January 05

Posted 19 June 2007 - 05:10 PM

Observe o treho WHERE '%".$palavra."%', alguma coluna tem que ser objeto de comparação para o WHERE, alguma coisa mais ou menos assim WHERE noticia LIKE '%".$palavra."%'.
PHP
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>

<?php
$conexao=mysql_connect("localhost","user","user") or die("Falha na Conexão");

$db=mysql_select_db("banco") or die("Falha ao Selecionar Banco de Dados");

if(!empty($_POST['palavra'])) {
   $palavra = str_replace(" ", "%", $_POST["palavra"]);
   $qr = "SELECT * FROM noticias WHERE '%".$palavra."%' ORDER BY codigo DESC";//Atenção aqui
   $sql = mysql_query($qr);
   $total = mysql_num_rows($sql);
   echo "Sua busca retornou '$total' resultados.";
   while($r = mysql_fetch_array($sql)) {
      echo "<hr>";
      echo $r["noticia"];
   }
}
?>
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>

<?php
$conexao=mysql_connect("localhost","user","user") or die("Falha na Conexão");

$db=mysql_select_db("banco") or die("Falha ao Selecionar Banco de Dados");

if(!empty($_POST['palavra'])) {
$palavra = str_replace(" ", "%", $_POST["palavra"]);
$qr = "SELECT * FROM noticias WHERE '%".$palavra."%' ORDER BY codigo DESC";//Atenção aqui
$sql = mysql_query($qr);
$total = mysql_num_rows($sql);
echo "Sua busca retornou '$total' resultados.";
while($r = mysql_fetch_array($sql)) {
echo "<hr>";
echo $r["noticia"];
}
}
?>

0

#7 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 21 June 2007 - 01:39 AM

Pô cara. obrigado pela atenção mas não consegui ainda thumbdown.gif
0

#8 User is offline   vinicolas 

  • Group: Membros
  • Posts: 48
  • Joined: 12-March 07

Posted 21 June 2007 - 12:30 PM

olá tente isso

$qr = "SELECT * FROM noticias WHERE '"$palavra"%' ORDER BY codigo DESC";

0

#9 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 23 June 2007 - 03:53 PM

Não deu....dá erro nessa linha sad.gif
0

#10 User is offline   Wanderson Regis 

  • Group: Moderadores
  • Posts: 1275
  • Joined: 10-January 05

Posted 23 June 2007 - 04:33 PM

Vamos supor que a coluna em que vc quer que a busca seja feita seja "noticia", então a busca deve ficar mais ou menos assim:
PHP
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>

<?php
$conexao=mysql_connect("localhost","user","user") or die("Falha na Conexão");

$db=mysql_select_db("banco") or die("Falha ao Selecionar Banco de Dados");

if(!empty($_POST['palavra'])) {
   $palavra = str_replace(" ", "%", $_POST["palavra"]);
   $qr = "SELECT * FROM noticias WHERE noticia LIKE '%".$palavra."%' ORDER BY codigo DESC";//Veja este trecho
   $sql = mysql_query($qr);
   $total = mysql_num_rows($sql);
   echo "Sua busca retornou '$total' resultados.";
   while($r = mysql_fetch_array($sql)) {
      echo "<hr>";
      echo $r["noticia"];
   }
}
?>
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>

<?php
$conexao=mysql_connect("localhost","user","user") or die("Falha na Conexão");

$db=mysql_select_db("banco") or die("Falha ao Selecionar Banco de Dados");

if(!empty($_POST['palavra'])) {
$palavra = str_replace(" ", "%", $_POST["palavra"]);
$qr = "SELECT * FROM noticias WHERE noticia LIKE '%".$palavra."%' ORDER BY codigo DESC";//Veja este trecho
$sql = mysql_query($qr);
$total = mysql_num_rows($sql);
echo "Sua busca retornou '$total' resultados.";
while($r = mysql_fetch_array($sql)) {
echo "<hr>";
echo $r["noticia"];
}
}
?>

eu já havia dito isso antes.
0

#11 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 28 June 2007 - 12:56 AM

ainda está me retornando erros, será problema do localhost ?

0

#12 User is offline   Wanderson Regis 

  • Group: Moderadores
  • Posts: 1275
  • Joined: 10-January 05

Posted 28 June 2007 - 10:11 AM

No meu exemplo a coluna seria "noticia", você mudou para a que está usando como referência.
0

#13 User is offline   c0pp3rf13ld 

  • Group: Membros
  • Posts: 118
  • Joined: 09-February 05

Posted 28 June 2007 - 10:21 AM

Vc usa o easyphp? já tive alguns problemas semelhantes usando-o, recomendo que faça a instalação de cada item.


0

#14 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 28 June 2007 - 11:35 PM

sim, eu uso o easyphp, vou fazer alguns testes aqui se não conseguir volta a postar, obrigado a todos thumbsup.gif
0

#15 User is offline   willwalker 

  • Group: Membros
  • Posts: 69
  • Joined: 21-February 06

Posted 30 July 2007 - 05:15 PM

Manero esse teu sistema 'H4K3R', de busca, tu saberia fazer em vez de ter um campo para busca, colocar só um link ? Tipo assim: http://www.site.com/index.php?nome=carlos

Poderia ser assim ? Ou igual do mercado livre... http://lista.mercadolivre.com.br/732N

Abraços WILL thumbsup.gif
0

#16 User is offline   Wanderson Regis 

  • Group: Moderadores
  • Posts: 1275
  • Joined: 10-January 05

Posted 30 July 2007 - 06:25 PM

Se você já estudou sabe que $_POST é um método de acessar constantes em recipientes enviados pelo formulário pelo método POST, ou seja, busca o valor de uma variável que veio do formulário. O $_GET faz o mesmo com variáveis enviadas pelo mátodo GET, basta alterar para o mais adequado e mudar o nome do índice, pois ambos, $_POST e $_GET são matrizes.
0

#17 User is offline   willwalker 

  • Group: Membros
  • Posts: 69
  • Joined: 21-February 06

  Posted 30 July 2007 - 07:25 PM

Como que eu poderia então fazer com que um botão, <a href=""></a>, ao ser clicado fizesse um tipo de busca ? laugh.gif

E mais uma dúvida, eu estou listando um banco de dados, mas dentro de uma tabela eu preciso listar os 6 ultimos cadastros, e em cada coluna tem que ter uma imagem, eu tento fazer mas aparece tudo igual, ai passo a página na paginação e vem o outro cadastro =/. Me ajuda ai H4K3R... Só falta isso para poder terminar, nunca tinha feito uma listagem assim... Olha o site que eu fiz http://www.moldabem.com.br, esse tipo de listagem foi facil de fazer, aora veio essa mais complicada xD...
0

#18 User is offline   Luiztjs 

  • Group: Membros
  • Posts: 12
  • Joined: 01-July 07

Posted 30 July 2007 - 09:38 PM

bati o olho e ja vi um erro

alterado :

QUOTE

$palavra = str_replace(" ", "%", $_POST['palavra']);


Se tiver algo errado coloca ai qeu eu vejo o codigo inteiro
0

#19 User is offline   willwalker 

  • Group: Membros
  • Posts: 69
  • Joined: 21-February 06

  Posted 31 July 2007 - 12:11 AM

Tá certinho a busca dele, mas eu to precisando fazer duas coisas, uma é fazer com que em uma tabela, falo tabela de html, seja listados 6 fotos cadastradas nela, se eu faço uma tabela, a proxima aparece em baixo e assim vai, to precisando de alguem que abra do lado ou uma forma de pegar os ultmos 6 registros do banco de dados e listar na tabela =].
0

#20 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 09 August 2007 - 05:12 PM

Pessoal , tive que ficar afastado deste post por um tempo para poder resolver outros problemas, porém o único problema que ainda não resolvi foi esse. thumbdown.gif
Estou usando um banco com o nome de "banco" a a tabela "noticias"
e o código da busca:

PHP
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>

<?php
$conexao=mysql_connect("localhost","root","123456") or die("Falha na Conexão");

$db=mysql_select_db("banco") or die("Falha ao Selecionar Banco de Dados");

if(!empty($_POST['palavra'])) {
   $palavra = str_replace(" ", "%", $_POST["palavra"]);
   $qr = "SELECT * FROM noticias WHERE noticias LIKE '%".$palavra."%' ORDER BY codigo DESC";//Veja este trecho
   //abaixo linha 14
   $sql = mysql_query($qr);
   //abaixo linha 15
   $total = mysql_num_rows($sql);
   echo "Sua busca retornou '$total' resultados.";
   //abaixo linha 17
   while($r = mysql_fetch_array($sql)) {
      echo "<hr>";
      echo $r["noticia"];
   }
}
?>
<FORM method="post">
Palavra: <INPUT name="palavra">
<INPUT type="submit" value="Buscar">
</FORM>

<?php
$conexao=mysql_connect("localhost","root","123456") or die("Falha na Conexão");

$db=mysql_select_db("banco") or die("Falha ao Selecionar Banco de Dados");

if(!empty($_POST['palavra'])) {
$palavra = str_replace(" ", "%", $_POST["palavra"]);
$qr = "SELECT * FROM noticias WHERE noticias LIKE '%".$palavra."%' ORDER BY codigo DESC";//Veja este trecho
//abaixo linha 14
$sql = mysql_query($qr);
//abaixo linha 15
$total = mysql_num_rows($sql);
echo "Sua busca retornou '$total' resultados.";
//abaixo linha 17
while($r = mysql_fetch_array($sql)) {
echo "<hr>";
echo $r["noticia"];
}
}
?>

e ainda me retorna os erros :

Warning: mysql_query(): Coluna 'noticias' desconhecida em 'where clause' in c:\arquivos de programas\easyphp1-8\www\minha busca\tmp5pcktmita0.php on line 14

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\minha busca\tmp5pcktmita0.php on line 15
Sua busca retornou '' resultados.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\arquivos de programas\easyphp1-8\www\minha busca\tmp5pcktmita0.php on line 17

Por favor me deêm uma mão ai

0

#21 User is offline   Wanderson Regis 

  • Group: Moderadores
  • Posts: 1275
  • Joined: 10-January 05

Posted 09 August 2007 - 08:28 PM

Tenta usar outro sistema que não seja o EasyPHP...

Eu (não sei dos outros) acho ele bom até a hora que precisa usar banco de dados...
0

#22 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 09 August 2007 - 08:57 PM

Ja tentei cara, hospedei no bem-vindo.net e a mesma coisa sad.gif , vcs não tem um código que funcione pra me ajudar ???? tbm aceito à essa altura.
0

#23 User is offline   pcclaro 

  • Group: Membros
  • Posts: 174
  • Joined: 04-June 06

Posted 12 August 2007 - 12:51 AM

Valeu pessoal ja consegui resolver, H4K3R, resolvi tirar o easy e instalei manualmente e refiz o banco e as tabelas e troquei o modo de exibição por mysql_free_result, ai funcionou. obrigado a todos thumbsup.gif




0

#24 User is offline   Leonardo_C_P_ 

  • Group: Membros
  • Posts: 379
  • Joined: 09-May 06

Posted 12 August 2007 - 01:20 PM

@$total = mysql_num_rows($sql);

Tira esse Warning fácil, fácil. ^^
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)