---
title: "Lite problem med en query"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/181440-lite-problem-med-en-query"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Guldstrand"
published: "2009-11-29T11:32:09.000Z"
updated: "2009-11-29T16:53:28.000Z"
replies: 5
views: 399
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/181440-lite-problem-med-en-query"
---

# Lite problem med en query

## #1 — Guldstrand, 2009-11-29T11:32Z

Vad är det för problem med följande query:

```php
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.

Permalänk: https://www.webforum.nu/p/181440

## #2 — Fredde Mannen, 2009-11-29T11:37Z

Ändra till:

```php
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.

Permalänk: https://www.webforum.nu/p/2215845

## #3 — Guldstrand, 2009-11-29T12:13Z

**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

Permalänk: https://www.webforum.nu/p/2215849

## #4 — Guldstrand, 2009-11-29T15:53Z

Hur löser jag det på samma sätt som ovan, fast då med en array?

```php
$ord = array("jul", "winter", "vinter", "santa", "christmas"); 
$ord = implode(", ", $ord);
```

Permalänk: https://www.webforum.nu/p/2215865

## #5 — MickeA.com, 2009-11-29T16:49Z

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.

Permalänk: https://www.webforum.nu/p/2215870

## #6 — MickeA.com, 2009-11-29T16:53Z

Helt otestad och behöver säkert justeras, men principen:

```php
<?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());
?>
```

Permalänk: https://www.webforum.nu/p/2215871

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/181440-lite-problem-med-en-query
