WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Enkel (?) Fråga om PHP&MySQL (https://www.wn.se/forum/showthread.php?t=1039778)

heavenclouds 2009-12-30 15:07

Enkel (?) Fråga om PHP&MySQL
 
Hej alla WN:are!

Är ganska halvbra på PHP men försöker snickra ihop lite på egen hand med hjälp av kollegor etc. för att lära mig. Men nu har jag totalfastnat och skulle verkligen vilja ha hjälp!

Jag vill söka i min MySQL. Jag har nu ett script som kan söka på den term som användaren skriver in i sökrutan. Detta fungerar toppen. Men jag vill söka på fler parametrar än en. Två är mitt mål.

$sokning = $_POST['sokning'];
$hamtainfo = mysql_query("SELECT * from databasen2009 where soktermen like '%$sokning%'");

Hur gör jag så att jag kan lägga till en parameter, så att sökningen baseras på två $_POST?

Hoppas ni förstod, försökte så bra jag kunde :)

Tack på förhand och gott nytt år!!

youheardit 2009-12-30 15:10

PHP-kod:

$sokning2 $_POST['sokning2'];
$sokning $_POST['sokning'];
$hamtainfo mysql_query("SELECT * from databasen2009 where soktermen like '%$sokning%' OR soktermen like '%$sokning2%'"); 


heavenclouds 2009-12-30 15:12

Beror sökningen på båda parametrarna då? Alltså båda parametrar måste stämma överens med sökningen, annars inga resultat.

heavenclouds 2009-12-30 15:20

Fixade det med AND, borde jag förstått direkt ;)

Tack för hjälpen!

youheardit 2009-12-30 15:22

Citat:

Ursprungligen postat av heavenclouds (Inlägg 20337119)
Fixade det med AND, borde jag förstått direkt ;)

Tack för hjälpen!

aha, så båda var tvungna att stämma, men tur du löste det :)

Jonas 2009-12-30 19:15

Citat:

Ursprungligen postat av youheardit (Inlägg 20337115)
PHP-kod:

$sokning2 $_POST['sokning2'];
$sokning $_POST['sokning'];
$hamtainfo mysql_query("SELECT * from databasen2009 where soktermen like '%$sokning%' OR soktermen like '%$sokning2%'"); 


PHP-kod:

$sokning2 mysql_real_escape_string($_POST['sokning2']);
$sokning mysql_real_escape_string($_POST['sokning']);
$hamtainfo mysql_query("SELECT * from databasen2009 where soktermen like '%" $sokning "%' OR soktermen like '%" $sokning2 "%'"); 

Skriv kod som folk kan använda eller påpeka möjliga säkerhetshål!

youheardit 2009-12-30 23:36

Citat:

Ursprungligen postat av Jonas (Inlägg 20337151)

Skriv kod som folk kan använda eller påpeka möjliga säkerhetshål!

jojo, sant, men tänkte mer på att det borde han ju själv förstå, annars ska man ju inte syssla med en sådan bit om man inte vet hur det gäller med säkerheten, såg mer detta som en förklaring av sqlfrågan.

Men som Jonas visar ska du använda dig av mysql_real_escape_string innan du kör frågan.

Magnus_A 2009-12-31 13:01

Mysql har annars stöd för fulltextsökning med match(), stöds endast i Myisam-tabeller
Se manualen:
http://dev.mysql.com/doc/refman/5.1/...xt-search.html
Så här i sin enklaste form:
select * from tabell where match(kolumn1) against('min söktext')

Jonas 2009-12-31 14:34

Citat:

Ursprungligen postat av Magnus_A (Inlägg 20337234)
Mysql har annars stöd för fulltextsökning med match(), stöds endast i Myisam-tabeller
Se manualen:
http://dev.mysql.com/doc/refman/5.1/...xt-search.html
Så här i sin enklaste form:
select * from tabell where match(kolumn1) against('min söktext')

Notera att för att göra en fulltext sökning så måste du ha ett index med fulltext på fältet man skall söka i.
Som standard så indexerar mysql enbart ord som är längre än 4st tecken.

Du ser detta genom att skriva följande mysql rad.
Kod:

show variables like 'ft_m%'

heavenclouds 2010-01-05 00:48

Tack för hjälpen!


Alla tider är GMT +2. Klockan är nu 13:34.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson