Avatar billede michaeltryl Seniormester
23. december 2006 - 19:37 Der er 11 kommentarer og
1 løsning

søge funktion

jeg har lavet denne søge funktion som egentlig gør jobbet fint nok, men jeg vil høre om der er en bedre måde at gøre det på?

<form name='sog' method='POST' ACTION='sog.php'>
Søg:<input type='text' name='sog_ord' size='25' maxlength='255'>
<input class='inputknap' name="sog" type='submit' value='søg'><b r>

<?php
//opret forbindelse til database
mysql_connect("localh ost", "****", "****") or die(mysql_error());
mysql_select_db("**** ") or die(mysql_error());

$sog_ord = mysql_real_escape_st ring($_REQUEST["sog_or d"]);

$sogning = mysql_query("SELECT * FROM TABEL") or die(mysql_error());
while ( $a = mysql_fetch_array($s ogning))
{

$tekst = $a[tekst];

if (preg_match("/$sog/i " , $tekst) OR preg_match("/$sog/i" , $titel))
{
    echo "$tekst<br>";
}
}
?>
Avatar billede viper_killerguy Nybegynder
23. december 2006 - 20:09 #1
select * from tabel where field1 like '%".$sog."%' OR field2 like '%".$sog."%' ...

% er wildcards
Avatar billede simplus Nybegynder
23. december 2006 - 20:13 #2
Ja, også ville jeg personligt bruge GET istedet for POST. Så kan man deeplinke hvis man får brug for det. Så kunnne du ændre REQUEST til GET - eller POST hvis du vælger at beholde det.
Avatar billede michaeltryl Seniormester
23. december 2006 - 20:29 #3
simplus er ikke lige med på hvad du mener, men mener du at det er bedre at gøre sådan $sog_ord = mysql_real_escape_string($_GET["sog_ord"]);
eller
$sog_ord = mysql_real_escape_st ring($_POST["sog_or d"]);
hvis ja kan du så fortælle lidt om hvad forskellen er på det du skriver noget om at deeplinke
Avatar billede simplus Nybegynder
23. december 2006 - 21:34 #4
Ja altså, jeg mener at du bør skifte alle steder ud hvor der står POST med GET!
Og istedet for at bruge REQUEST skal du bruge GET...

Så kan man deeplinke.. dvs man kan linke til en side hvor man allerede har søgt.. det kan man ikke med post.. altså kan man ved brug af GET lave et link der hedder f.eks.:
www.side.dk/soeg.php?keyword=exp
når man så trykker på linket kommer man ind på din side hvor input feltet allerede er udfyldt med teksten "exp". Det hedder deeplink.

Håber du forstår...
Avatar billede michaeltryl Seniormester
23. december 2006 - 21:37 #5
jeg er med på at bruge GET når der skal hentes fra adresse linien, men har aldrig brugt det i en form, så bare for at være helt sikker mener du at jeg skal gøre sådan
<form name='sog' method='GET' ACTION='sog.php'>
og
mysql_real_escape_string($_GET["sog_ord"]);
og i selve imput feltet skal jeg så indsætte en value med indholdet fra GET
Avatar billede simplus Nybegynder
23. december 2006 - 21:44 #6
Ja og nej, du skal ikke indsætte en value med indholdet fra GET. Det misforstod du åbenbart.. det gør den nemlig selv..

Kort sagt, brug denne:

<form name='sog' method='GET' ACTION='sog.php'>
Søg:<input type='text' name='sog_ord' size='25' maxlength='255'>
<input class='inputknap' name="sog" type='submit' value='søg'><b r>

<?php
//opret forbindelse til database
mysql_connect("localh ost", "****", "****") or die(mysql_error());
mysql_select_db("**** ") or die(mysql_error());

$sog_ord = mysql_real_escape_st ring($_GET["sog_or d"]);

$sogning = mysql_query("SELECT * FROM TABEL") or die(mysql_error());
while ( $a = mysql_fetch_array($s ogning))
{

$tekst = $a[tekst];

if (preg_match("/$sog/i " , $tekst) OR preg_match("/$sog/i" , $titel))
{
    echo "$tekst<br>";
}
}
?>
Avatar billede simplus Nybegynder
23. december 2006 - 21:51 #7
Jeg ville dog også bruge wildcards som viper foreslog.. Bruger dem selv på min side!
Avatar billede michaeltryl Seniormester
23. december 2006 - 21:57 #8
okay det vil jeg så gøre istedet, det gør også koden kortere :-) men kom med et svar begge to så lukker jeg her
Avatar billede simplus Nybegynder
23. december 2006 - 22:08 #9
Jeg samler ikke på point :-)
God jul!
Avatar billede michaeltryl Seniormester
23. december 2006 - 22:17 #10
så venter jeg på viper_killerguy.
tak i lige måde og godt nytår
Avatar billede michaeltryl Seniormester
05. januar 2007 - 17:32 #11
vil du have point viper_killerguy ellers lukker jeg her
Avatar billede michaeltryl Seniormester
10. januar 2007 - 12:54 #12
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester