Witam
Problem jest następujący brak polskich znaków w wyniku wyszukiwania. kodowanie strony i skryptu: UTF-8
Dane wprowadzone do bazy danych są w utf-8, system porównań bazy danych ustawiony na UTF-8, połączenie z baza danych zostało ustawione aby dane pobierał w utf-8:
W całym skrypcie dane z bazy wyświetlane są poprawnie z polskimi znakami. Jedynie podczas wpisania do formularza szukanego słowa które zawiera polskie znaki zostaje zwrócony komunikat że słowo nie zostało znalezione, jednak skrypt wyszukuje słowo bez polskich znaków w bazie. polskie znaki są ignorowane np. wpisując do formularza słowo "żółty" skrypt przeszukuję tylko "ty" bez początkowych 3 polskich znaków.
Ma ktoś jakiś pomysł jak rozwiązać ten problem?
Szczegóły poniżej:
Mam prosty formularz wyszukiwania pojedynczych słów w bazie:<form action="$kay_site/lookup" method="get" id="frmSearch" name="frmSearch">
<fieldset>
<ol>
<li>
<label for="word">Szukaj Słowa: </label>
<input id="word" type="text" value="" onfocus="tipFade();" name="word"/>
<input id="submit" type="submit" value="Szukaj"/>
</li>
</ol>
</fieldset>
</form>
wynik zwracany jest za pomocą następującego kodu:<div id="lookup_results">
<?php echo get_lookup_results
($word); ?> </div>
który odwołuje się do funkcji: get_lookup_results:function get_lookup_results($word) {
$id_url = get_word_info($word);
if ($id_url) {
if ($id_url['url'] == 'none') {
$html = '<p>Znalazłem! To słowo jest wolne i możesz je zarejestrować dla siebie. <a href="'.KAY_SITE.'/buy/'.$id_url['id'].'" class="buyitnow">Aktywuj to Słowo!</a></p>';
$html .= '<p>» <span class="available"><a href="'.KAY_SITE.'/buy/'.$id_url['id'].'">'.$word.'</a></span></p>';
} else {
$html = '<p>Niestety, słowo którego szukasz zostało już aktywowane przez innego użytkownika.!</p>';
/* $html .= '<p>Jesteś właścicielem tego słowa? ';*/
/* $html .= 'Jeżeli tak możesz <a href="'.KAY_SITE.'/feature/'.$id_url['id'].'" class="buyitnow">wyróżnić to słowo</a> na naszej <b>stronie głównej</b>!'; */
$html .= '</p>';
$html .= '<p><ul class="home-words"><li><a class="active-link" href="'.$id_url['url'].'"><span >'.$word.'</span></a></p></li></ul><br /><br />';
}
$html .= '<p>Możesz również rozważyć aktywację podobnych<span class="available"> dostępnych</span> słów, kliknij aby kontynować.</p>';
$html .= get_alike($word);
return $html;
} else {
$html = '<p>Niestety, słowo którego poszukujesz nie znajduje się w naszej bazie! Aby dodać słowo napisz do naszego administratora lub sam dodaj słowo.</p>';
$html .= '<p><h2>Kliknij aby dodać słowo <span >'.$word.'</span> do bazy danych</h2></p>';
$html .= '<p>Możesz również zarejestrowac podobne słowo?</p>';
$html .= get_alike($word);
return $html;
}
}
funkcje powiązane:
function get_word_info($word) {
$sql = "SELECT `url`, `words`.`id` FROM `words`, `sold` WHERE `sold`.`sold_id` = `words`.`id` AND `words`.`word` = '$word'";
return array('url' => $row['url'], 'id' => $row['id']); } else {
$sql = "SELECT * FROM `words` WHERE `word` = '$word' ";
return array('url' => $row['url'], 'id' => $row['id']); }
}
return false;
}
function get_alike($word) {
$html = '<ul class="alike_words">';
$sql = "SELECT * FROM `words` WHERE (SELECT `word` LIKE '%$word%') AND (`url` = 'none') AND (`word` != '$word') LIMIT 0, 20";
$html .= '<li><a href="'.KAY_SITE.'/buy/'.$row['id'].'" title="Kliknij aby kupić: '.$row['word'].'">'.$row['word'].'</a></li>';
}
} else {
$html .= '<li>Niestety, nie znaleziono podobnych słów !)</li>';
}
$html .= '</ul>';
return $html;
}
z góry dzięki za pomoc wszystkim dobrym ludziom (IMG:
style_emoticons/default/smile.gif)
czy nikt nie ma pomysłu co morze być przyczyną mojego problemu??
pozdrawiam,
Marcin