• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Broken

Pesquisar.php

29 mensagens neste tópico

hey pessoal alguem pode me ajudar a fazer uma pesquisa para um site em php ?

o tipo de pesquisa e de bases de dados.

tnks ;D

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já reparaste na secção PHP? É que quase metade dos posts têm o que procuras... ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e TU é que tens que iniciar o codigo, e nos AJUDAMOS nao FAZEMOS as coisas por ti, logo começa a fazer o codigo e caso tenhas DUVIDAS expoes aqui...

Existe (felizmente) a opção Pesquisa no "menu" do forum, penso que está la para ser usado ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

infelizmente em todos os fóruns é a mesma coisa... o botão da pesquisa deve provocar urticária ou coisa parecida...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lolz, epah soz ok ?

anyway mais uma vez ja consegui o exemplo que precisava, em relaçao ao pesquisar eu postei isto pk estava com alguma dificuldade e estava na empresa. no entanto n tive mt tempo para procura pk vim para casa e como e obvio n trouxe o trabalho atras.

Mas ja consegui um exemplo, qualquer duvida faço post aki, ;)

meninas sensiveis(joke) ;D lolz

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é na boa... mas pra proxima ja sabes ;)

tens que fazer 1 coisa tipo isto:


$escolha=$_POST['select'];
$procura =$_POST['string'];
/* atencao! Wildcards (%) a funcionar */
$procura2 = "%$procura%";
if (escolha == "News") {
$procura = "Select * from news where title=$procurar2 order by ID DESC";
$procura = mysql_query($procura) or die (mysql_error());
while($resultado=mysql_fetch_array($procura)) {

/* ect e tal */

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol ja tinha feito hj um codigo... vou deixar aki.

[code
<?php

$handler = mysql_connect("localhost", "root", "") or die ("não me consigo conectar"); 
mysql_select_db("chardware", $handler) or Die ("Não consigo abrir a BD");

$texto = $_GET['search'];

$result = mysql_query("SELECT * FROM hardware WHERE fornecedor LIKE '%$text%'");

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

//tratamento dos dados :
echo "$tmp['campo que contem info'] \r\n";

}

?>

o  que coloco no 'campo que contem info' ?

actualmente é o que tenho alguns erros axo , abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
actualmente é o que tenho alguns erros axo , abraços

Vi muito rapidamente, mas parece-me que ainda não definiste a acção que o form deverá fazer para pesquisar.

O código SQL pareceu-me estar bem. No entanto alerto para o facto das procuras "case sensitive"... para salvaguardar, deverás transformar tudo para maiusculas ou minusculas.... exemplo:

$result = mysql_query(" SELECT * FROM hardware WHERE fornecedor LIKE UPPER('%".strtoupper( $text )."%')  ");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

NOVO ERRO

dps de colocar tudo tenho um novo erro ao qual nao encontro soluçao

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 13

este erro tem a ver com esta linha:

echo "$tmp['$texto'] \r\n";  ««




<?php

$handler = mysql_connect("localhost", "root", "") or die ("não me consigo conectar"); 
mysql_select_db("chardware", $handler) or Die ("Não consigo abrir a BD");

$texto = $_GET['search'];

$result = mysql_query("SELECT * FROM hardware WHERE fornecedor LIKE '%$text%'");

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

//tratamento dos dados :
echo "$tmp['$texto'] \r\n";

}

?>




este é todo o código que tenho actualmente, abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
<?php

$handler = mysql_connect("localhost", "root", "") or die ("não me consigo conectar"); 
mysql_select_db("chardware", $handler) or Die ("Não consigo abrir a BD");

$texto = $_GET['search'];

$result = mysql_query("SELECT * FROM hardware WHERE fornecedor LIKE '%$text%'");

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

//tratamento dos dados :
echo $tmp[ $texto ];

}

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com esse codigo que me mandas te da me os seguintes erros:

Notice: Undefined index: search in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 6

Notice: Undefined variable: text in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 7

Notice: Undefined index: in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 11

Notice: Undefined index: in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 11

Notice: Undefined index: in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 11

Linha 6

$texto = $_GET['search'];

linha 7

$result = mysql_query("SELECT * FROM hardware WHERE fornecedor LIKE '%$text%'");

linha 11

echo $tmp[ $texto ]; }

lol ;S, abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php

$connection = mysql_connect( "localhost", "root" , "" ) or die( mysql_error());
mysql_select_db( "chardware" , $connection ) or die( mysql_error());

$sql = sprintf( "SELECT * FROM hardware WHERE fornecedor LIKE UPPER('%%s%') ", strtoupper($_GET[ 'search' ]) );
$recordset = mysql_query( $sql , $connection ) or die( mysql_error());
$row_recordset = mysql_fetch_assoc( $recordset );

do {
     echo $row_recordset[ 'nome_do_campo' ];
} while ( $row_recordset = mysql_fetch_assoc( $recordset ) );

?>

Notice: Undefined index: search in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 6

aparentemente não está a ser passado por $_GET a variável search.

PS: Atenção que o script encontra-se vulnerável a SQL INJECTION.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hey consegui resolver todos esses problemas agr e o seguinte:

ficheiro de envio

  <input name="fornecedor" type="hidden" value="<? echo $_REQUEST['fornecedor']?>">

coloquei esta var no entanto n sei o que se passa porque no outro ficheiro onde supostamente vai receber esta variavel ele deveria

agarra la

ficheiro a receber

$texto = $_POST['fornecedor'];

Notice: Undefined index: fornecedor in c:\programas\easyphp1-8\www\workmedia\procurar.php on line 31

a linha 31 é:

  <input name="fornecedor" type="hidden" value="<? echo $_REQUEST['fornecedor']?>">

a ideia disto e fazer o procurar.php

o que esta errado?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelo que percebi tens 2 páginas.... na primeira página esperas encontrar uma variável fornecedor ?E depois guardas-a num campo escondido para passar para a página 2.

O erro que te dá é na página 2 porque não foi passado valor. Provavelmente onde estás a guardar $_REQUEST[ 'fornecedor' ] deverás utilizar $_GET[ 'fornecedor'] ou $_POST[ 'fornecedor' ].

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Request plo que sei e li em php.net engloba $_COOKIE $_GET E $_POST, no entanto vou testar como disseste

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

decidi colocar uma breve explicaçao dakilo que quero talvez seja mais facil.

a ideia é ter um formulario e uma list box na qual nos escolhemos o campo da bd ke queremos procurar (listbox) enquanto isso dps de colocar mos texto no form ele vai enviar e procurar no campo ke nos escolhemos da listbox.

hmve1.jpg

espero que com a imagem se perceba melhor a minha ideia

obrigado, abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<form action="pesquisa.php" name="pesquisar_na_bd" method="post" >
     <label for="texto_pesquisa">Texto a pesquisar:</label> <input name="texto_pesquisa" type="text" id="texto_pesquisa" />
     em 
     <select name="campo_bd">
          <option value="-1">Seleccione o campo a procurar</option>
          <option value="nome_do_campo_na_bd">Campo 1</option>
          <option value="nome_do_campo_na_bd">Campo 2</option>
          <option value="nome_do_campo_na_bd">Campo 3</option>
          <option value="nome_do_campo_na_bd">Campo 4</option>
          <option value="nome_do_campo_na_bd">Campo 5</option>
     </select>
     <input type="submit" name="Submit" value="Procurar" />
</form>

na página pesquisa.php

<?php

$ligacao = mysql_pconnect( "localhost" , "root" , "" ) or trigger_error( mysql_error( ) , E_USER_ERROR );
mysql_select_db( "nome_da_bd" , $ligacao );
$sql = "SELECT ".$_POST[ 'nome_do_campo_na_bd' ]." FROM tabela WHERE ".$_POST[ 'nome_do_campo_na_bd' ]." LIKE UPPER( %".strtoupper($_POST[ 'texto_pesquisa' ])."%)";

$recordset = mysql_query( $sql , $ligacao ) or die( mysql_error());
$row_recordset = mysql_fetch_assoc( $recordset );

do {

     echo $row_recordset[ $_POST[ 'nome_do_campo_na_bd' ] ];

} while ( $row_recordset = mysql_fetch_assoc( $recordset );

?>

Pelo exemplo que tinhas na imagem isto é mais ou menos o que precisas..... agora tens de adaptar a ti. E tem atenção que não fiz validações nenhumas e não testei o Input contra SQL Injection.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Parse error: parse error in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 10

novo erro sobre a linha:

while ( $row_recordset = mysql_fetch_assoc( $recordset );

-----------------------

ficheiro que recebe

<?php

$ligacao = mysql_pconnect( "localhost" , "root" , "" ) or trigger_error( mysql_error( ) , E_USER_ERROR );mysql_select_db( "chardware" , $ligacao );

$sql = "SELECT ".$_POST[ 'fornecedor' ]." FROM hardware WHERE ".$_POST[ 'fornecedor' ]." LIKE UPPER( %".strtoupper($_POST[ 'texto_pesquisa' ])."%)";

$recordset = mysql_query( $sql , $ligacao ) or die( mysql_error());

$row_recordset = mysql_fetch_assoc( $recordset );

do {      echo $row_recordset[ $_POST[ 'hardware' ] ]; }

while ( $row_recordset = mysql_fetch_assoc( $recordset );

?>

----------------------------------------

agr

BASE DE DADOS: chardware

Tabela: hardware

Campos: fornecedor, caracteristicas, tipo.

----------------------------

obrigado e abraços :thumbsup:

aguardo resposta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
<?php

   $ligacao = mysql_pconnect( "localhost" , "root" , "" ) or trigger_error( mysql_error( ) , E_USER_ERROR );mysql_select_db( "chardware" , $ligacao );
   
   $sql = "SELECT * FROM hardware WHERE ".$_POST[ 'fornecedor' ]." LIKE UPPER( %".strtoupper($_POST[ 'texto_pesquisa' ])."%)";
   
    $recordset = mysql_query( $sql , $ligacao ) or die( mysql_error());
    $row_recordset = mysql_fetch_assoc( $recordset );
    do {      
        echo $row_recordset[ "fornecedor" ]."<br />"; 
        echo $row_recordset[ "caracteristicas" ]."<br />";
        echo $row_recordset[ "tipo" ]."<br />";
    } while ( $row_recordset = mysql_fetch_assoc( $recordset ));

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bom dia a todos

mad16v obrigado desde ja pela tua ajuda, no entanto estes erros... enfim... vou deixar aki o novo problema:

Notice: Undefined index: fornecedor in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 6

Você tem um erro de sintaxe no seu SQL próximo a 'LIKE UPPER( %GKOOK%)' na linha 1

---------

obrigado mais uma vez, abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$sql = "SELECT * FROM hardware WHERE ".$_POST[ 'fornecedor' ]." LIKE UPPER( %".strtoupper($_POST[ 'texto_pesquisa' ])."%)";

passa a :

$sql = "SELECT * FROM hardware WHERE ".$_POST[ 'fornecedor' ]." LIKE UPPER( '%".strtoupper($_POST[ 'texto_pesquisa' ])."%')";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pq likeupper?

Pk sou maluco..... ;) pensei que o LIKE fizesse distinção entre maiusculas e minusculas, mas já testei e não faz  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora