webForumDet fria alternativet
Logga in / Bli medlem

Använda en array i ett SQL uttryck

PHP

2 svar · 244 visningar · startad av pakmannen

Medlem sedan dec. 2002227 inlägg
Trådstart#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

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

Medlem 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?)

371 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
120 ms — deklarationer (db)
120 ms — hämta statistik (db)
127 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)