---
title: "Söker fel på svenska tecken"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/180768-söker-fel-på-svenska-tecken"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "lilja"
published: "2009-10-16T11:20:19.000Z"
updated: "2009-10-16T15:32:08.000Z"
replies: 4
views: 457
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/180768-söker-fel-på-svenska-tecken"
---

# Söker fel på svenska tecken

## #1 — lilja, 2009-10-16T11:20Z

Jag försöker mig på att få utf-8 att fungera på en sida jag gör i en kurs jag läser. Läraren hjälper dock bara till med iso-8859-1 så jag hoppas jag kan få svar här? :)

Först och främst fungerar alla (svenska) tecken fint. Det jag har problem med är sökning i databasen då å och ä behandlas som a. ö behandlas som o. Eller det verkar så i alla fall.

Är det någon mer här som vet något om detta? Beror det på databasen eller php-koden? Jag har testat med både utf8_general_ci och utf8_swedish_ci i databasen och min sökning går mot en vy.

När jag skriver min fråga direkt i databasen får jag samma resultat så det kanske inte beror på min PHP-kod?

Min sökning:

```php
$search = $mysqli->real_escape_string($_GET['search']);
$query = sprintf('SELECT * FROM VEquipmentFriend WHERE FullName LIKE \'%%%1$s%%\' OR Nickname LIKE \'%%%1$s%%\' OR Title LIKE \'%%%1$s%%\';', $search); 

$mysqli->query("SET NAMES utf8") or die(mysql_error());
$mysqli->query("SET CHARACTER SET utf8") or die(mysql_error()); 

$res = $mysqli->query($query) 
	or die("Could not query database, query =<br/><pre>{$query}</pre><br/>{$mysqli->error}");
```

Fullständig kod: <http://www.student.bth.se/~chlh09/source.php?dir=kmom06&file=index.php>

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

## #2 — SPiN, 2009-10-16T11:39Z

Se [mitt svar](http://www.webforum.nu/showpost.php?p=1484010&postcount=15) i tråden [ÅÄÖ strul](http://www.webforum.nu/showthread.php?t=176523).

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

## #3 — lilja, 2009-10-16T13:20Z

Ok, allt det där har jag gjort. Sorteringen fungerar inte men det är säkert för att jag körde på utf8_general_ci från början och missat ändra någonstans.

Det jag har problem med är att när jag söker på ä får jag alla resultat som innehåller a, å och ä?? Jag vill bara ha strängar som innehåller ä i det fallet.

Förenklad söknig:

```
SELECT * FROM Tabell Where Kolumn LIKE '%ä%';
```

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

## #4 — SPiN, 2009-10-16T13:51Z

Kasta om till den kollationering som ska användas för sökningen.

```
select
    *
from
    table
where
    cast(myColumn as char character set 'utf8') collate 'utf8_swedish_ci'
        like
            '%ä%'
```

Som sagt, vet du med dig att du enbart kommer att använda svenska som språk kan du slippa såna här "problem" genom att använda utf8_swedish_ci som kollationering från början.

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

## #5 — lilja, 2009-10-16T15:32Z

Yes, jag hade missat ändra från general_ci till swedish_ci på kolumnerna. Det löste både sökningen och sorteringen. Tack! :)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/180768-söker-fel-på-svenska-tecken
