---
title: "SELECT WHERE xx LIKE($variabel) problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/22117-select-where-xx-like-variabel-problem"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Faktor"
published: "2001-05-08T13:33:00.000Z"
updated: "2001-05-10T08:32:00.000Z"
replies: 6
views: 248
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/22117-select-where-xx-like-variabel-problem"
---

# SELECT WHERE xx LIKE($variabel) problem

## #1 — Faktor, 2001-05-08T13:33Z

Okej, jag har fått veta att det inte är så säkert att skriva såhär men iaf.

\<OPTION name=p_ldesc value="WHERE hm_sender LIKE('%$opt_value%')"\>Speciell\</OPTION\>

Den fullständiga raden kommer att bli:

select \* from helpmsg WHERE hm_sender LIKE('%$opt_value%')

byter man ut $opt_value mot en bokstav och kör raden i mySQL Query så fungerar det utmärkt. Dock inte om man kör det över webben. 

Då får jag felmeddelandet: "Warning: Supplied argument is not a valid MySQL result resource in C:\\Inetpub\\wwwroot\\php\\list.php on line 33"

\-------
31\. \<?php
32\. $i = 0;
33\. while($myrow = mysql_fetch_array($result)){
34\. $aId\[$i\] = "".$myrow\["0"\];
35\. $aSender\[$i\] = "".$myrow\["1"\];
36\. $aSenderEmail\[$i\] = "".$myrow\["2"\];
37\. $aLocation\[$i\] = "".$myrow\["3"\];
38\. $aSenderDate\[$i\] = "".$myrow\["4"\];
39\. $aSubject\[$i\] = "".$myrow\["5"\];
40\. $aMessage\[$i\] = "".$myrow\["6"\];
\------

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

## #2 — LarsG, 2001-05-08T14:21Z

Då är det säkert något fel på den sql-sats som du skickar till mysql_query/mysql_db_query. Lägg in anrop till mysql_error efter detta anrop, t.ex.

$result = mysql_query ...
echo mysql_error();

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

## #3 — Faktor, 2001-05-09T08:01Z

Det resulerar i:

You have an error in your SQL syntax near '\\'%$opt_value%\\')' at line 1

jag vet inte var \\ kom ifrån men sådana behöver man väl bara när man använder " och inte för '. Inte sant?

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

## #4 — LarsG, 2001-05-09T08:10Z

Kan du lägga upp det kodavsnitt där selectsatsen finns?

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

## #5 — Faktor, 2001-05-09T10:56Z

Givetvis kan jag det ...

\----
\<?php
if ($submit)
{
$db = mysql_connect("localhost", "root");
mysql_select_db("ITEM",$db);
$result = mysql_query("SELECT \* FROM helpmsg $opt_select",$db);
echo mysql_error();
?\>
\----

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

## #6 — LarsG, 2001-05-09T18:23Z

Det verkar som om $opt_value aldrig evalueras. Du har alltså en variable som innehåller strängen

WHERE hm_sender LIKE('%$opt_value%')

om jag förstår det hela rätt.  Nu så kan ju jag väldigt lite om PHP men behöver man inte göra eval på detta så att man får in värdet av $opt_value i strängen. Lite schematiskt

```
<?php
$opt_value= 'nisse';
$str = "WHERE hm_sender LIKE('%$opt_value%')";
eval ("\$str = \"$str\";");
$res = mysql_query("select * from helpmsg $str");
?>
```

      
Om du inte får ihop så kan du kan ställa frågan i PHP-forument i stället.

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

## #7 — Faktor, 2001-05-10T08:32Z

Du hade rätt, det var evalueringen som fattades. Det fungerar fint nu. 
Tack så mycket för hjälpen!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/22117-select-where-xx-like-variabel-problem
