---
title: "Sökfunktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/184419-sökfunktion"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Emil W"
published: "2010-08-21T00:02:33.000Z"
updated: "2010-08-23T18:38:41.000Z"
replies: 12
views: 665
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/184419-sökfunktion"
---

# Sökfunktion

## #1 — Emil W, 2010-08-21T00:02Z

Kommer inte på hur jag ska bygga en sök funktion. Jag tänkte att man ska kunna välja mellan att söka efter artnr,namn eller tillverkare.

Hur löser man det ?

Här kommer formulär koden

```
<form action="sok.php" method="post">
<table align="center">
<tr><td><b>Sök:</b></td><td><input type="text" name="sok" size="50"></td></tr>
<tr><td><b>Sök efter:</b></td><td>Artnr<input type="radio" name="alt1" value="art"> Namn<input type="radio" name="alt1" value="namn"> Tillverkare<input type="radio" name="alt1" value="tillv"></td></tr>
<tr><td align="right" colspan="2"><input type="submit" name="starta" value="Sök"></td></tr>
</form>
```

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

## #2 — rhdf, 2010-08-21T00:54Z

du kollar helt enkelt i sok.php vilken radiobutton som är vald
utifrån det så konstruerar du din sql, alternativt har en fråga/alternativ.

```
Artnr <input type="radio" name="alt1" value="1">
Namn <input type="radio" name="alt1" value="2"> 
Tillverkare<input type="radio" name="alt1" value="3">
```

Pseudokod ( inte en susning om exakt syntax)

```
switch ($post["alt1] {
    case 1:
        SearchField="art"        
        break;
    case 1:
        SearchField="namn"        
        break;
    case 2:
        SearchField="tillv"        
        break;
}
$sqlQuery="SELECT * FROM tabellen WHERE".SearchField."LIKE%". $post["sok"]."%";
```

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

## #3 — Emil W, 2010-08-21T22:57Z

Jag har provat koden nu.

Edit: har hittat små fel i koden.

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

## #4 — rhdf, 2010-08-21T23:14Z

inte det minsta förvånad att du hittade fel i koden från mitt inlägg
notera denna lilla rad 
Pseudokod ( inte en susning om exakt syntax)

dock underlättar det ju för någon som KAN php om  du talar om vilka fel du hittat

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

## #5 — Emil W, 2010-08-23T17:47Z

Jag orkar inte skriva alla fel.

Någon som vet varför den inte funkar, jag har inte hittat alla fel än och kommer inte på alla ?

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

## #6 — voigtann1, 2010-08-23T17:52Z

du skrev att du hade fixat en del, det hade underlättat att veta vad du hade fixat, sql frågan exempelvis saknar ett mellanslag, kan vara det, få du något felmeddelande så underlättar det också.

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

## #7 — Emil W, 2010-08-23T18:20Z

Här kommer koden

```php
<?php
include('bcon.php');

$con = mysql_connect($server,$user,$pass);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($data,$con);

if(isset($_POST['starta']))
{
switch ($_POST['alt1']) {
    case 1;
        SearchField="art";
        break;
    case 2;
        SearchField="namn";
        break;
    case 3;
        SearchField="tillv";
        break;
}

$sok = mysql_real_escape_string($_POST['sok']);
$sqlQuery="SELECT namn FROM sok WHERE ".SearchField."'%$sok%'";

while($row = mysql_fetch_array($result))
{
echo htmlspecialchars($row['namn']);
}
}
?>
```

Det här felmeddelandet får jag. 

Parse error: parse error in C:\\wamp\\www\\testar.php on line 16

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

## #8 — voigtann1, 2010-08-23T18:24Z

vilken rad är 16?

```
$sqlQuery="SELECT namn FROM sok WHERE ".SearchField." [b]LIKE[/b] '%$sok%'";
```

du skall nog även ha LIKE i din SQL fråga.

Sen vet jag inte hur det är med PHP men Request är väl ändå en sträng? så Switch satsen kan också vara fel?

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

## #9 — Emil W, 2010-08-23T18:27Z

Rad 16 är den här.

```php
SearchField="art";
```

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

## #10 — voigtann1, 2010-08-23T18:29Z

Är det inte typ $SearchField du vill ha som en variabel i PHP?

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

## #11 — Emil W, 2010-08-23T18:31Z

Tack så mycket för hjälpen det var att det skulle vara $SearchField och LIKE.

Så nu funkar sökfunktionen.

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

## #12 — voigtann1, 2010-08-23T18:35Z

du saknade även } i din switch fråga ser det ut som.

sen switch case skall väl vara med ":" och inte ";"?

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

## #13 — Emil W, 2010-08-23T18:38Z

jag kör med ; och det funkar bra och  sen fattades mysql_query.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/184419-sökfunktion
