Avatar billede gotchi Nybegynder
25. februar 2006 - 18:40 Der er 10 kommentarer og
1 løsning

søgefunktion hvordan

hej hvordan får jeg den til at søge i min database "artikler" med felterne "overskrift" og "tekst" ?

$_POST[tekst] er det den skal lede efter

fx hvis jeg skriver "test" skal den:
select  * from artikler where overskrift = '$_POST[tekst]' AND tekst = '$_POST[tekst]'

men det er noget med LIKE % men hvordan gøres dette
Avatar billede michael_stim Ekspert
25. februar 2006 - 18:48 #1
select  * from artikler where overskrift LIKE '%$_POST[tekst]%' AND tekst LIKE '%$_POST[tekst]%'
Avatar billede michael_stim Ekspert
25. februar 2006 - 18:51 #2
Skal den starte med sögeordet du skriver i tekstfeltet, skriver du % til sidst. Og skal den slutte med sögeordet skal % väre först.
LIKE '$_POST[tekst]%' //Starter med det or du skriver
LIKE '%$_POST[tekst]' //Ender på det ord du skriver
LIKE '%$_POST[tekst]%' //Indeholder det ord du skriver (först, sidst, midten osv)
Avatar billede gotchi Nybegynder
25. februar 2006 - 19:24 #3
Har lavet, men nu får jeg følgende:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in c:\programmer\easyphp1-8\www\\seek.php on line 31
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 '' at line 1

og koden er:
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM artikler WHERE tekst LIKE '%$_GET[tekst]%' AND kat = $_GET[sprog]"),0) or die(mysql_error());

$_GET[sprog] er et valid tal
og $_GET[tekst] er fx. "a"
Avatar billede gotchi Nybegynder
25. februar 2006 - 19:25 #4
heyyy det mig der fejler.. hehe
Avatar billede gotchi Nybegynder
25. februar 2006 - 20:06 #5
har et problem..
den søger slet ikke nu.. jeg skriver start og den finder fx. ikke overskriften "start på php".. hvad gør jeg forkert?


$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM artikler WHERE overskrift LIKE '%$_GET[tekst]%'  AND tekst LIKE '%$_GET[tekst]%' AND kat = $_GET[kat]"),0) or die(mysql_error());

$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

$hent = mysql_query("SELECT id, tekst, dansk, tekst, hits, overskrift, ni FROM artikler WHERE overskrift LIKE '%$_GET[tekst]%' AND tekst LIKE '%$_GET[tekst]%' AND kat = $_GET[kat] ORDER BY id DESC limit

$vis_fra, $pr_side");
Avatar billede michael_stim Ekspert
25. februar 2006 - 20:26 #6
Pröv at bytte AND ud med OR
Avatar billede michael_stim Ekspert
25. februar 2006 - 20:27 #7
Du har jo $_GET[tekst] i begge to (overskrift og tekst)
Avatar billede gotchi Nybegynder
25. februar 2006 - 20:34 #8
har jeg jo prøvet, men så tager den ikke kat ordenligt ind.
jeg siger jo:
hvis .. ELLER ... OG kat = '..'

kan man jo ikke..

den viser i alle kategorier nu, og ikke den jeg valgte.

$pr_side = 5;
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM artikler WHERE overskrift LIKE '%$_GET[tekst]%' OR tekst

LIKE '%$_GET[tekst]%' AND kat = $_GET[kat]"),0) or die(mysql_error());

$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;

$hent = mysql_query("SELECT id, tekst, dansk, tekst, hits, overskrift, ni FROM artikler WHERE overskrift LIKE

'%$_GET[tekst]%' OR tekst LIKE '%$_GET[tekst]%' AND kat = $_GET[kat] ORDER BY id DESC limit $vis_fra, $pr_side");
Avatar billede michael_stim Ekspert
25. februar 2006 - 21:23 #9
Men skal det väre $_GET[tekst] i begge.
Du skal have parantes rundt om OR vilkåret.
WHERE (dit LIKE dat OR dut LIKE dåt) AND ...
Avatar billede gotchi Nybegynder
26. februar 2006 - 01:54 #10
tak, smid svar
Avatar billede michael_stim Ekspert
26. februar 2006 - 11:33 #11
Svar...
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