Hej alla glada!
Jag har ett litet sökscript som delar upp sökorden och söker på samtliga. Det funkar som det ska ända fram tills jag upptäckte att den inte söker på en del konstiga tecken (speciellt om bara de tecknen skrivs i sökrutan), såsom åäö, ', ?, & etc.
Jag använder i nuläget följande:
$sql = "SELECT * FROM tabell WHERE ";
if(isset($_POST['keyword'])) {
$keyword = $_POST['keyword'];
$keywordArr = str_word_count($keyword, 1);
if(!(empty($keywordArr))) {
for ($i=0; $i<count($keywordArr); $i++) {
$keywordArr[$i] = "kolumn1 LIKE '%" . $keywordArr[$i] . "%' OR kolumn2 LIKE '%" . $keywordArr[$i] . "%' OR kolumn3 LIKE '%" . $keywordArr[$i] . "%'";
}
}
$sql .= implode(" OR ", $keywordArr) . " AND ";
}
$sql .= "NOT (dold = 0)";
Som jag förstår det så vägrar str_word_count() att godkänna konstiga tecken som ord. Jag hittade något om charlist-parameter, men det verkar inte fungera. Kanske för gammal version av php.
Går det att lösa på något bättre sätt än min variant eller fixa så att str_word_count() funkar som jag har tänkt?
Alla förslag mottages :)
Taxi!
r/ Jag har lite andra sökproblem också tydligen ;) Hittade en tråd här på wF om just åäö i str_word_count(). Jag testade då att lägga till htmlentities på söksträngen, men den hittade inget trots att det finns poster med åäö. Och tecken som t ex fnuttar genererar fortfarande ingen träff. Inte så viktigt kanske, men helst så vill jag att funktionen ska kunna söka på strängar oavsett tecken-innehåll. Om det går?