---
title: "Fnuttar i SQL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/140678-fnuttar-i-sql"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "henkepenka"
published: "2006-01-11T13:49:21.000Z"
updated: "2006-01-11T22:02:31.000Z"
replies: 3
views: 412
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/php/140678-fnuttar-i-sql"
---

# Fnuttar i SQL

## #1 — henkepenka, 2006-01-11T13:49Z

Hej, jag har en if-sats där olika typer av SQL-strängar byggs. Efter denna if-sats vill jag köra den SQL-sträng som blev utvald. 

Såhär ser t.ex. en SQL-sträng ut:

```php
$SQL = 'SELECT * FROM movies WHERE movieTitle Like '%"" .$_POST['searchvalue']. ""%' ORDER BY movieTitle LIMIT';
```

Och såhär ser SQL-satsen ut:

```php
$results = mysql_query("". $SQL . "" . $from_records . "," . $max_per_page);
```

Jag har förmodligen något fel här, för när jag ska loopa igenom alla poster med:

```php
while ($r = mysql_fetch_array($results))
```

Så får jag detta felmeddelande:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\\appserv\\www\\movies\\listmovies.php on line 303

Och rad 303 är just:  

```php
while ($r = mysql_fetch_array($results))
```

Någon som kan se felet?

MvH //
Henrik

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

## #2 — @nders, 2006-01-11T13:51Z

1:

```php
$SQL = "SELECT * FROM movies WHERE movieTitle Like '%" .$_POST['searchvalue']. "%' ORDER BY movieTitle LIMIT 1";
```

2: Varför konkatenerar du tom sträng före och efter SQL-frågan i mysql_query()?
3: Tänk på SQL injection.

(om du har med LIMIT i SQL-frågan måste du ju också ha med ett antal. det är väl en av orsakerna till att det inte fungerar.)

edit: nu har jag läst ditt konkateneringskladd en gång till, och ser att antalet till limit nog hakar på i $from_records, så då kan du ju kanske bortse från mitt parentestillägg.

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

## #3 — Matte, 2006-01-11T15:02Z

Fast du bör nog lägga till ett mellanslag mellan LIMIT och värdet.

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

## #4 — aasah, 2006-01-11T22:02Z

Jag tycker det verkar som om dina %-tecken hamnar utanför strängen? Dessutom stänger du strängen felaktigt eftersom du använder ' ytterst också, vilket gör att SQL:s startsträng fungerar som stoppsträng för SQL-frågan. Byt till " ytterst. Notera också inskjutna mellanslag: efter LIMIT och , i nedre satsen.

```php
$SQL = "SELECT * FROM movies WHERE movieTitle Like '%".$_POST['searchvalue']."%' ORDER BY movieTitle LIMIT ";
$results = mysql_query($SQL .$from_records.", ".$max_per_page);
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/140678-fnuttar-i-sql
