webForumDet fria alternativet

sökning med två variabler

9 svar · 401 visningar · startad av dr_damir

dr_damirMedlem sedan mars 2003132 inlägg
#1

Tjena!

Jag skulle vilja göra en fulltextsökning i MySQL.
Tänkte använda mig av match...against.

Jag har två olika variabler jag vill söka med. Så jag skrev såhär:

$sql = "SELECT * FROM table1 WHERE MATCH(namn,stavning,kategori,alternativ) 
AGAINST('$sokning' AND '$kategori' IN BOOLEAN MODE) ORDER by namn ASC";

Det verkar inte fungera. :OO
Måste man slå ihop de två variablerna, $sokning och $kategori, innan man söker med dem eller kan man skriva på något liknande sätt?

tack!

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Var har du hittat den syntaxen?

$sql = "SELECT * FROM table1 WHERE MATCH(namn,stavning,kategori,alternativ) 
AGAINST('+" . $sokning . " +" .'$kategori . "' IN BOOLEAN MODE) ORDER by namn ASC";
dr_damirMedlem sedan mars 2003132 inlägg
#3

Ok, nä den syntaxen skrev jag själv =), för att visa vad jag menade.

Om man gör en sökning $sql = select from....
Hur gör man sen för att göra en till sökning men i den första sökningen? alltså söka i ett gammalt sögresultat?

dr_damirMedlem sedan mars 2003132 inlägg
#4

hej igen

jag skrev såhär i hopp om att det skulle funka men det verkar inte riktigt så... =(

$sql = "SELECT * FROM (SELECT * FROM tabell WHERE namn LIKE '$sokning%') WHERE kategori LIKE '%$kategori%' ORDER by namn ASC";

Någon som vet hur man skulle kunna skriva?
tack

LarsGMedlem sedan dec. 200012 464 inlägg
#5
$sql = "select * from tabell " .
" where namn like '" . $sokning . "%'" .
" and kategori like '%" . $kategori . "%'" .
" order by namn asc";
dr_damirMedlem sedan mars 2003132 inlägg
#6

Jo så kan man ju göra. Tack för svaren LarsG. Men det finns alltså inget sätt att göra en sökning ur en gammal sökning utan att göra om den första sökningen?

typ:

$sql1 = "SELECT * FROM tabell WHERE namn LIKE $sokning"

$sql2 = "SELECT * FROM $sql1 WHERE kategori LIKE $kategori"

tack

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Nej.

dr_damirMedlem sedan mars 2003132 inlägg
#8

Attans! Ett stort tack LarsG!

missModestyMedlem sedan apr. 2005254 inlägg
#9

Borde man inte kunna använda sig av views? Typ:

CREATE VIEW v AS SELECT * FROM tabell WHERE namn LIKE $sokning

SELECT * FROM v WHERE kategori LIKE $kategori

Men jag kan sql måttligt bra så det var bara en idé jag fick.

LarsGMedlem sedan dec. 200012 464 inlägg
#10

Jo, om man pratar materialiserade vyer men det finns inte i Mysql.

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)