![]() |
Tjena,
försöker göra en sökfunktion i en "nyhetsblogg". Och det fungerar så länge man inte skriver ÅÄÖ. text, är html formaterad text sparad i MySQL databas. Hur kan jag fixa så det fungerar även med ÅÄÖ? Vad gör jag för fel? Kod:
$seek = $_POST['seek']; |
När du söker i fulltext bör man använda MySql:s inbyggda funktion för detta. Lägg till FULLTEXT som index för de aktuella kolumnerna i databasen. Sökningen sker sedan med villkoret:
WHERE MATCH(kolumn) AGAINST('sökord'). Sedan vill du konvertera till html entitites. Det gör du enklare och säkrare genom att använda php:s inbyggda funktion htmlentities Det verkar som om du lägger in strängarna kodade med htmlentities. Det är egentligen onödigt, och det vore antagligen bättre om du kunde lagra texten där som den är och eventeullt konvertera den när du tar ut den för visning. |
Hej, tack för ditt snabba svar.. men jag vet inte om det är jag som inte fattar eller vad.
Kod:
if(isset($_POST['go']) && $_POST['search'] != '' && strlen($_POST['search']) >= 2){ Söker jag dock på gärna eller både så hittar den inget, och detta är ord jag vet finns med i texten den söker igenom. Hur kommer detta sig? Ett sparat inlägg ser ut såhär i databasen; Kod:
<p><strong>Från och med den 20 maj 2008 har vi en helt ny hemsida.</strong></p> Citat:
|
Använd utf-8:
1. deklarera utf-8 i html, 2. sätt databasen till utf-8 (och strunta i den omständiga och onödiga konverteringen till &osv; ) |
Citat:
vad är det för skillnad på att söka efter både när det är sparat som både i texten eller söka efter både när det är sparat som både? Tänk om jag måste söka efter både ? |
Vet inte om Mysql:s fulltextsök är gjort för att användas på html-entities-kodade texter. Tror att den tolkar & och ; som ordslut.
Html är inga problem att söka i, ända tills någon försöker söka på till exempel strong, då borde han få hitts på varje inlägg. Det bästa är att göra som martine rekommenderar, sluta använda entities och hålla sig till utf8. Om du absolut och mot bättre vetande måste ha kvar dina inlägg i denna kodade form, så är min rekommendation att skapa ett till fält i databasen där du lägger in text körd genom html_entity_decode och eventuellt strip_tags så att du får en riktig text att söka på. Lycka till. |
ok tack!
men låt oss säga, att man skulel söka genom "HTML" sidor, så vi inte hänger upp oss på "blogg" inlägg, alltså sidor som kräver att det är html, för att det tex finns tabeller, bilder och en massa annan skräp, då är det alltså bäst att rensa datan med strip_tags och html_entity_decode, och söka i den texten istället. Tack. |
Alla tider är GMT +2. Klockan är nu 23:52. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson