Z krasnala leci

To jest cały skrypt, zresztą kilka mam takich skryptów gdzie wciąż błąd wyskakuje, ale co do tego to jest kilka plików, dla pewności dam wszystkie
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <title>Podpowiadanie i autouzupełnianie w AJAX
</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="suggest.css" rel="stylesheet" type="text/css" /> Twoja przeglądarka nie obsługuje JavaScript!!
<div id="content" onclick="hideSuggestions();"> <div id="message">Podaj pierwsze litery funkcji, którą chcesz odnaleźć:
</div> <input type="text" name="keyword" id="keyword" maxlength="70" size="69" onkeyup = "handleKeyUp(event)" value="" />
suggest.php
<?php
// odwołanie do pliku zwierającego klasę Suggest
require_once('suggest.class.php');
// tworzy nowÄ… instancjÄ™ klasy Suggest
$suggest = new Suggest();
// pobiera parametr - słowo kluczowe
$keyword = $_GET['keyword'];
// czyści dane wyjściowe
// nagłówki mają zapobiec przechowywaniu danych w pamięci podręcznej przeglądarki
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT' ); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); header('Cache-Control: no-cache, must-revalidate'); header('Content-Type: text/xml'); // wysyła wyniki do klienta
echo $suggest->getSuggestions($keyword); ?>
suggest.class.php
<?php
// ładuje moduł obsługi błędów
require_once('error_handler.php');
// ładuje plik konfoguracyjny
require_once('config.php');
// klasa, której zadaniem jest obsługa funkcji podpowiadania i autouzupełniania po stronie serwera
class Suggest
{
// obsługa bazy danych
private $mMysqli;
// konstruktor, otwiera połączenie z bazą
function __construct()
{
// łączy z bazą
$this->mMysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
}
// destruktor, zamyka połączenie z bazą
function __destruct()
{
$this->mMysqli->close();
}
// zwraca nazwy wszystkich funkcji, które zaczynają się od wartości $keyword
public function getSuggestions($keyword)
{
// obcina łańcuch słowa kluczowego
$patterns = array('/s+/', '/"+/', '/%+/'); // tworzy zapytanie SQL, ktĂłre pobiera pasujÄ…ce nazwy funkcji z bazy
if($keyword != '')
$query = 'SELECT name ' . 'FROM suggest ' . 'WHERE name LIKE "' .
$keyword . '%"';
// jeśli słowo kluczowe nie zostało podane, nie zwraca nic
else
$query = 'SELECT name ' . 'FROM suggest ' . 'WHERE name=""';
// wykonuje zapytanie SQL
$result = $this->mMysqli->query($query);
// tworzy odpowiedĹş w formacie XML
$output = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
$output .= '<response>';
// jeśli są wyniki, przegląda je w pętli i dodaje do danych wyjściowych
if($result->num_rows)
while ($row = $result->fetch_array(MYSQLI_ASSOC))
$output .= '<name>' . $row['name'] . '</name>';
// zamyka strumień wyjściowy
$result->close();
// dodaje znacznik kończący plik
$output .= '</response>';
// zwraca wyniki
return $output;
}
//koniec klasy Suggest
}
?>
error_handler.php
<?php
// ustawia metodę obsługi błędu użytkownika na error_handler
// funkcja obsługująca błędy
function error_handler($errNo, $errStr, $errFile, $errLine)
{
// czyści wygenerowane wcześniej dane wyjściowe
// komunikat o błędzie danych wyjściowych
$error_message = 'ERRNO: ' . $errNo . chr(10) .
'TEKST: ' . $errStr . chr(10) .
'LOKALIZACJA: ' . $errFile .
', linia ' . $errLine;
// zapobiega wykonywaniu innych skryptĂłw php
}
?>
Pozdrawiam i z góry dzięki:)