Vad är det för problem med följande query:
SELECT id, name, added, category, search_text, confirmed
FROM images
WHERE search_text LIKE '%jul%' OR
search_text LIKE '%winter%' OR
search_text LIKE '%santa%' OR
search_text LIKE '%christmas%'
AND confirmed = 0
ORDER BY added/category DESC
..tydligen så verkar den "hoppa över" confirmed = 0.
Det jag försöker göra, är att visa alla bilder som innehåller något av orden ovan (jul, winter, santa, christmas), och som väntar på godkännande.
Ändra till:
SELECT id, name, added, category, search_text, confirmed
FROM images
WHERE (search_text LIKE '%jul%' OR
search_text LIKE '%winter%' OR
search_text LIKE '%santa%' OR
search_text LIKE '%christmas%')
AND confirmed = 0
ORDER BY added/category DESC
Dvs att, where (det inom) and confirmed = 0 , skall vara sant. Tror jag funkar bättre.
Nu fungerar det bättre.
Tack för det snabba svaret. :e
Jag funderar på att lägga alla sökord i en array istället, men hur löser jag det då? :r
Hur löser jag det på samma sätt som ovan, fast då med en array?
$ord = array("jul", "winter", "vinter", "santa", "christmas");
$ord = implode(", ", $ord);
Du måste bygga sqlfrågan dynamiskt (med PHP i ditt fall). Loopia igenom din array och lägg till OR search_text LIKE '%" . $minarr[$i] . "%' för varje loop. På så sätt kan du ha en eller hundra OR, beroende på arrayen.
Helt otestad och behöver säkert justeras, men principen:
<?php
$minarr = array("ord1", "ord2", "ord3");
$condition = "";
foreach($minarr as $key => $value){
$condition .= "field1 LIKE '%" . $value . "%' OR";
}
$condition = substr($condition, 0, -3); // Ta bort det sista 'OR'
$minsql = "SELECT "
."field1, field2 "
."FROM tabell "
."WHERE ("
.$condition
.") "
."ORDER BY field1 ASC";
mysql_query($minsql) or die(mysql_error());
?>