webForumDet fria alternativet

Använda en array i ett SQL uttryck

2 svar · 242 visningar · startad av pakmannen

pakmannenMedlem sedan dec. 2002227 inlägg
#1

Okej, jag har funderat lite på det här men jag vet inte om det är möjligt.
Grejen är att jag försöker göra en simpel sökmotor med php och mySQL och jag har kommit så långt att man kan söka i databasen och så. Men så tänkte jag att man skulle kunna separera ord med "+" tecken, och jag antar att man då måste bryta upp söksträngen. Jag använde då explode funktionen och delade in den i en array.

Nu kommer då det krångliga, jag måste ju ändra om detta SQL uttryck:
$query = "SELECT * FROM artiklar WHERE rubrik LIKE '%$query%' OR innehåll LIKE '%$query%'";

Den måste ju kolla om ANTINGEN $query[0] finns, eller om $query[4] finns osv...
Alltså, finns det nåt sätt att skriva $query[%] eller nåt liknande? (Att sätta procenttecken funkade ju inte, men ni förstår vad jag menar..)

:OO

FlowMedlem sedan dec. 200283 inlägg
#2

Re: Använda en array i ett SQL uttryck

pakmannen skrev:

$query = "SELECT * FROM artiklar WHERE rubrik LIKE '%$query%' OR innehåll LIKE '%$query%'";

Pröva det här:


$query = "SELECT * FROM artiklar WHERE "
for ($i = 0; $i < count($query); $i++)
{
$query = $query . "rubrik LIKE '%$query[$i]%' OR innehåll LIKE   '%$query[$i]%' ";
}

Borde funka tycker jag, har inte testat dock...

pakmannenMedlem sedan dec. 2002227 inlägg
#3

Nja, grejen är att det finns ju ett OR med i SQL satsen, så då kommer det ju bli helt fel, man måste nästan lägga in ett OR till i slutet av satsen, och ta bort det när den sista loopen körs. Tror jag..

(Och ska det inte stå ett "+" istället för "." förresten?)

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