---
title: "Hämtar info som den inte ska"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/115084-hämtar-info-som-den-inte-ska"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Pedda"
published: "2004-11-04T12:23:56.000Z"
updated: "2004-11-04T12:50:03.000Z"
replies: 5
views: 252
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/115084-hämtar-info-som-den-inte-ska"
---

# Hämtar info som den inte ska

## #1 — Pedda, 2004-11-04T12:23Z

Har problem med denna sql sats. Har nog stirrat mig blind utan att fatta vad som är fel.

Problemet är att den hämtar informationen även om godkannd inte är 2.

Någon som kan se vad jag gjort för fel?

```php
$data = mysql_query("SELECT id, foretag, ort, beskrivning FROM foretag WHERE godkannd = 2 AND $var OR $split ORDER BY foretag LIMIT $from_records,$max_per_page");
```

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

## #2 — @nders, 2004-11-04T12:28Z

Till att börja med skulle det vara intressant att se den färdiga SQL-frågan.

Du skulle behöva fundera lite över hur du vill att dina villkor ska evalueras. Jag antar att det är det här du är ute efter:

```php
$data = mysql_query("SELECT id, foretag, ort, beskrivning FROM foretag WHERE godkannd = 2 AND ($var OR $split) ORDER BY foretag LIMIT $from_records,$max_per_page");
```

> Problemet är att den hämtar informationen även om godkannd inte är 2.

Om villkoret i $split uppfylls spelar det enligt din originalfråga ingen roll vad *godkannd* har för värde.

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

## #3 — Pedda, 2004-11-04T12:35Z

Mmm, det verkar funka.

Tycligen så att jag tänker helt fel. Trodde att AND gjorde att  godkannd måste uppfyllas och att $var eller $split uppfylls.

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

## #4 — @nders, 2004-11-04T12:42Z

Eftersom AND binder hårdare än OR tolkas din WHERE-sats som:

> Antingen måste *godkannd* vara två samtidigt som villkoret *$var* uppfylls, eller så går det fint om villkoret *$split* uppfylls.

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

## #5 — Pedda, 2004-11-04T12:47Z

Ok det skulle ju vara
Antingen måste godkannd vara två samtidigt som villkoret $var eller $split uppfylls

r/ så ditt förslag funkar inte helt som jag tänkt mig men jag jobbar vidare på det. :)

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

## #6 — @nders, 2004-11-04T12:50Z

Ja, precis, och då måste du knyta ihop dina *eller-villkor* med parentes.

Om du var en databasmotor, hur skulle du tolka frågan?
De två första villkoren tillsammans, eller det första och ett av de två andra? Varför? Ska databasmotorn gissa? :)

edit:

> r/ så ditt förslag funkar inte helt som jag tänkt mig men jag jobbar vidare på det.

Det borde det göra. Men det beror som sagt självklart på hur den egentliga SQL-frågan ser ut, dvs vad $var och $split innehåller. Skriv alltid ut färdig SQL-fråga för felsökning.

mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/115084-hämtar-info-som-den-inte-ska
