webForumDet fria alternativet

sökning med två variabler

Databaser & SQL

9 svar · 402 visningar · startad av dr_damir

Medlem sedan mars 2003132 inlägg
Frågan#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!

Medlem 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";
Medlem 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?

Medlem 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

Medlem sedan dec. 200012 464 inlägg
#5
$sql = "select * from tabell " .
" where namn like '" . $sokning . "%'" .
" and kategori like '%" . $kategori . "%'" .
" order by namn asc";
Medlem 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

Medlem sedan dec. 200012 464 inlägg
#7

Nej.

Medlem sedan mars 2003132 inlägg
#8

Attans! Ett stort tack LarsG!

Medlem 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.

Medlem sedan dec. 200012 464 inlägg
#10

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

266 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)