---
title: "Varför fungerar inte min sökfunktion?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/131714-varför-fungerar-inte-min-sökfunktion"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "streetrobban"
published: "2005-07-21T13:22:01.000Z"
updated: "2005-07-26T10:14:03.000Z"
replies: 13
views: 492
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/131714-varför-fungerar-inte-min-sökfunktion"
---

# Varför fungerar inte min sökfunktion?

## #1 — streetrobban, 2005-07-21T13:22Z

Min sökfunktion fungerar nästan. Men det är en grej som gör att det blir error...

Här följer lite kodexempel!

Detta fungerar:

```php
// Hämta sökresultaten
$get = mysql_query("SELECT ... produkter_biltillbehör.id ... FROM sns_produkter_biltillbehör WHERE ... produktnamn LIKE  '%" . $sok . "%' OR beskrivning LIKE '%" . $sok . "%' ... ORDER BY produktnamn");
```

Men när jag sedan vill att man ska söka igenom id också, så funkar det inte:

```php
// Hämta sökresultaten
$get = mysql_query("SELECT ... produkter_biltillbehör.id [b]produkter_biltillbehör.id AS produkt_id[/b] ... FROM sns_produkter_biltillbehör WHERE ... produktnamn LIKE '%" . $sok . "%' OR beskrivning LIKE '%" . $sok . "%' [b] OR produkt_id LIKE '%" . $sok . "%'[/b] ... ORDER BY produktnamn");
```

Felmeddelandet lyder:

```

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/kunder/www/sokresultat.php on line 78
```

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

## #2 — tydal, 2005-07-21T13:25Z

Visa hela SQL-satsen som det blir fel på i stället. Och visa resultatet av mysql_error() efteråt. Då kan ju vi, och kanske du också, se vad det är för fel.

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

## #3 — @nders, 2005-07-21T13:29Z

Det kan också vara bra att separera fält i SELECT-frågan med kommatecken.

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

## #4 — Niklasson, 2005-07-21T13:51Z

Tråden flyttas från PHP..

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

## #5 — streetrobban, 2005-07-21T13:53Z

Ok, nu skrev jag bara koden för hand. Jag kopierar hela koden här då.

```php
	<?php
	// Öppna databasen
	require 'inkludera/databas.php';

	// Räkna sökresultaten
	$get = mysql_query("SELECT sns_bilmärken.id, sns_bilmärken.bilmärke, sns_bilmodeller.id, sns_bilmodeller.bilmodell, sns_kategorier_biltillbehör.id, sns_kategorier_biltillbehör.kategorinamn, sns_produkter_biltillbehör.id AS produkt_id, sns_produkter_biltillbehör.produktnamn, sns_produkter_biltillbehör.id_bilmodell, sns_produkter_biltillbehör.id_bilmärke, sns_produkter_biltillbehör.bild, sns_produkter_biltillbehör.beskrivning, sns_produkter_biltillbehör.pris, sns_produkter_biltillbehör.id_kategori, sns_produkter_biltillbehör.tid, sns_produkter_biltillbehör.datum FROM sns_produkter_biltillbehör
	INNER JOIN sns_kategorier_biltillbehör ON sns_produkter_biltillbehör.id_kategori = sns_kategorier_biltillbehör.id
	INNER JOIN sns_bilmodeller ON sns_produkter_biltillbehör.id_bilmodell = sns_bilmodeller.id
	INNER JOIN sns_bilmärken ON sns_produkter_biltillbehör.id_bilmärke = sns_bilmärken.id WHERE produktnamn LIKE '%" . $sok . "%' OR beskrivning LIKE '%" . $sok . "%' OR bilmodell LIKE '%" . $sok . "%' OR bilmärke LIKE '%" . $sok . "%' OR kategorinamn LIKE '%" . $sok . "%' OR pris LIKE '%" . $sok . "%' OR produkt_id LIKE '%" . $sok . "%' ORDER BY produktnamn", $open);
	$rowCount = mysql_numrows($get);

	// Kolla hur många resultat som hittades
	if ($rowCount == '0')
	{
		echo "Din sökning på ordet <span class=sok><b>$sok</b></span> gav inga resultat.<br/>";
		echo "<li/><a href=sok.php>Ny sökning</a>";
	}
	else
	{
		if ($rowCount == '1')
		{
			echo "Din sökning på ordet <span class=sok><b>$sok</b></span> återfanns i $rowCount produkt.<br/>";
			echo "<li/><a href=sok.php>Ny sökning</a><br/><br/>";
		}
		else
		{
			echo "Din sökning på ordet <span class=sok><b>$sok</b></span> återfanns i $rowCount produkter.<br/>";
			echo "<li/><a href=sok.php>Ny sökning</a><br/><br/>";
		}
	
		echo "<table border=0 width=555px cellspacing=0 cellpadding=0>";
		
		// Hämta sökresultaten
		$get = mysql_query("SELECT sns_bilmärken.id, sns_bilmärken.bilmärke, sns_bilmodeller.id, sns_bilmodeller.bilmodell, sns_kategorier_biltillbehör.id, sns_kategorier_biltillbehör.kategorinamn, sns_produkter_biltillbehör.id AS produkt_id, sns_produkter_biltillbehör.produktnamn, sns_produkter_biltillbehör.id_bilmodell, sns_produkter_biltillbehör.id_bilmärke, sns_produkter_biltillbehör.bild, sns_produkter_biltillbehör.beskrivning, sns_produkter_biltillbehör.pris, sns_produkter_biltillbehör.id_kategori, sns_produkter_biltillbehör.tid, sns_produkter_biltillbehör.datum FROM sns_produkter_biltillbehör
		INNER JOIN sns_kategorier_biltillbehör ON sns_produkter_biltillbehör.id_kategori = sns_kategorier_biltillbehör.id
		INNER JOIN sns_bilmodeller ON sns_produkter_biltillbehör.id_bilmodell = sns_bilmodeller.id
		INNER JOIN sns_bilmärken ON sns_produkter_biltillbehör.id_bilmärke = sns_bilmärken.id WHERE produktnamn LIKE '%" . $sok . "%' OR beskrivning LIKE '%" . $sok . "%' OR bilmodell LIKE '%" . $sok . "%' OR bilmärke LIKE '%" . $sok . "%' OR kategorinamn LIKE '%" . $sok . "%' OR pris LIKE '%" . $sok . "%' OR produkt_id LIKE '%" . $sok . "%' ORDER BY produktnamn");
		
		// Highlighta sökordet
		function colorit ($get, $sok)
		{
			$get = preg_replace ("/(.*?)(" . $sok . ")(.*?)/is", "\\1<span class=sok>\\2</span>\\3", $get);
			return $get;
		}
		
		while($userRow = mysql_fetch_array($get)) 
		{
			echo "<tr>";
			echo "<td bgcolor=#FBFAFA>";
			echo "<table border=0 bgcolor=#000000 width=67px height=50px cellspacing=0 cellpadding=1>";
			echo "<tr>";
			echo "<td>";
			echo "<a href=bilder/produkter/".$userRow['bild']." onclick=\"imgPopup5(this.href); return false;\"><img src=bilder/produkter/".$userRow['bild']." border=0  width=67px height=50px title=\" Förstora \"></a>";
			echo "</tr>";
			echo "</td>";
			echo "</table>";
			echo "</td>";
			echo "<td width=20px bgcolor=#FBFAFA>";
			echo "&nbsp;";
			echo "</td>";
			echo "<td bgcolor=#FBFAFA>";
			echo "<b>Bilmärke</b><br/>";
			echo colorit($userRow['bilmärke'],$sok);
			echo "&nbsp;";
			echo colorit($userRow['bilmodell'],$sok);
			echo "</td>";
			echo "<td width=20px bgcolor=#FBFAFA>";
			echo "&nbsp;";
			echo "</td>";
			echo "<td bgcolor=#FBFAFA>";
			echo "<b>Pris</b><br/>";
			echo colorit($userRow['pris'],$sok);
			echo " kr";
			echo "</td>";
			echo "<td width=20px bgcolor=#FBFAFA>";
			echo "&nbsp;";
			echo "</td>";
			echo "<td bgcolor=#FBFAFA>";
			echo "<b>Artikel ID</b><br/>";
			echo colorit($userRow['produkt_id'],$sok);
			echo "</td>";
			echo "<td width=20px bgcolor=#FBFAFA>";
			echo "&nbsp;";
			echo "</td>";
			echo "<td bgcolor=#FBFAFA>";
			echo "<b>";
			echo colorit($userRow['produktnamn'],$sok);
			echo "</b><br/>";
			echo colorit($userRow['beskrivning'],$sok);
			echo "</td>";
			echo "</tr>";
			echo "<tr>";
			echo "<td height=5px>";
			echo "</td>";
			echo "</tr>";
		}
		
		// Stäng databasen
		mysql_close($open);
		
		echo "</table>";
	}
	?>
```

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

## #6 — @nders, 2005-07-21T13:55Z

> **tydal skrev:**
>
> Och visa resultatet av mysql_error() efteråt. Då kan ju vi, och kanske du också, se vad det är för fel.

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

## #7 — streetrobban, 2005-07-21T14:11Z

Ja det glömde jag...

```
Warning: mysql_error(): 6 is not a valid MySQL-Link resource in /home/kunderwww/sokresultat.php on line 133
```

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

## #8 — tydal, 2005-07-21T16:40Z

I stället för $get = mysql_query("SELECT osv... så skriver du:

$query = "SELECT osv... ";
echo($query);
$get = mysql_query($query);
echo(mysql_error());

Då får du fram hela sql-satsen och mysql_error efteråt.

Du hade nog råkat lägga mysql_error efter att du kört mysql_close, och då har den ju stängt förbindelsen till Mysql och kan därmed inte kolla felmeddelandet.

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

## #9 — streetrobban, 2005-07-23T18:19Z

Jag kan väl inte skriva ut mysql_error() på echo? Då skriver den ju bara ut orden "mysql_error()"... ?

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

## #10 — streetrobban, 2005-07-23T18:23Z

Jag får alltid samma felmeddelande:

```
  	

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/kunder/www/sokresultat.php on line 42
Din sökning på ordet 87 återfanns i produkter.
# Ny sökning

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/kunder/www/sokresultat.php on line 82
```

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

## #11 — tydal, 2005-07-24T18:33Z

echo("mysql_error()"); skriver ut orden mysql_error, men du ska skriva echo(mysql_error()); vilket i stället skriver ut resultatet av funktion mysql_error som talar om vad du får för felmeddelande i Mysql.

Felmeddelandet du klistrat in talar om att du ska kolla på vad Mysql ger för felmeddelande.

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

## #12 — streetrobban, 2005-07-25T08:36Z

Ja, wow. Nu får man fram lite nyttig information.

```
Unknown column 'produkt_id' in 'where clause'
```

Men jag hämtar ju produkt_id

```php
sns_produkter_biltillbehör.id AS produkt_id
```

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

## #13 — @nders, 2005-07-25T08:39Z

Det är inte alltid man kan använda de alias man ger fält i SQL-frågan. Du får nog använda sns_produkter_biltillbehör.id i WHERE-satsen istället.

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

## #14 — streetrobban, 2005-07-26T10:14Z

Jamen äntligen funkar det :) Tack för era svar!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/131714-varför-fungerar-inte-min-sökfunktion
