Utworzyłem sobie bazę danych na "webd.pl". Niby wszystko jest: tabelki dane w niej. Polecania wpisywane dla MySQLa działają (np.: select). Problem zaczynają się gdy napisałem krótki formularz w HTMLu:
Kod
<html>
<head>
</head>
<body>
<form action="rezultat.php" method="post">
Wybierz metodę wyszukiwania:<br />
<br />
<select name="metoda_wysz">
<option value="autor">Autor
<option value="tytul">Tytuł
<option value="isbn">ISBN
</select>
<br />
<br />
<br />
Wprowadż szukane wyrażenie:<br />
<br />
<input name="wyrazenie" type="text">
<br />
<input type="submit" value="Szukaj">
</form>
<div>
</body>
</html>
<head>
</head>
<body>
<form action="rezultat.php" method="post">
Wybierz metodę wyszukiwania:<br />
<br />
<select name="metoda_wysz">
<option value="autor">Autor
<option value="tytul">Tytuł
<option value="isbn">ISBN
</select>
<br />
<br />
<br />
Wprowadż szukane wyrażenie:<br />
<br />
<input name="wyrazenie" type="text">
<br />
<input type="submit" value="Szukaj">
</form>
<div>
</body>
</html>
Póżniej napisałem stronę wyniku w php:
Kod
<html>
<head>
<title>"Ksi±żkorama"-Rezultaty wyszukiwania</title>
</head>
<body>
<h1>"Ksi±żkorama"-Rezultaty wyszukiwania </h1>
<?php
// utworzenie krótkich nazw zmiennych
$metoda_szukania=$_POST['metoda_wysz'];
$wyrazenie=$_POST['wyrazenie'];
$wyrazenie = trim($wyrazenie);
if (!$metoda_szukania || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
exit;
}
if (!get_magic_quotes_gpc())
{
$metoda_szukania = addslashes($metoda_szukania);
$wyrazenie = addslashes($wyrazenie);
}
@ $db = new mysqli('localhost', 'krzysio_mybooks', 'krzysio', 'krzysio');
if (mysqli_connect_errno())
{
echo 'Bł±d: Poł±czenie z baz± danych nie powiodło się. Spróbuj jeszcze raz póĽniej.';
exit;
}
$zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
echo '<p>Ilo¶ć znalezionych pozycji: '.$ile_znalezionych.'</p>';
for ($i=0; $i <$ile_znalezionych; $i++)
{
$wiersz = $wynik->fetch_assoc();
echo '<p><strong>'.($i+1).'. Tytuł: ';
echo stripslashes($wiersz['tytul']);
echo '</strong><br />Autor: ';
echo stripslashes($wiersz['autor']);
echo '<br />ISBN: ';
echo stripslashes($wiersz['isbn']);
echo '<br />Cena: ';
echo stripslashes($wiersz['cena']);
echo '</p>';
}
$wynik->free();
$db->close();
?>
</body>
</html>
<head>
<title>"Ksi±żkorama"-Rezultaty wyszukiwania</title>
</head>
<body>
<h1>"Ksi±żkorama"-Rezultaty wyszukiwania </h1>
<?php
// utworzenie krótkich nazw zmiennych
$metoda_szukania=$_POST['metoda_wysz'];
$wyrazenie=$_POST['wyrazenie'];
$wyrazenie = trim($wyrazenie);
if (!$metoda_szukania || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
exit;
}
if (!get_magic_quotes_gpc())
{
$metoda_szukania = addslashes($metoda_szukania);
$wyrazenie = addslashes($wyrazenie);
}
@ $db = new mysqli('localhost', 'krzysio_mybooks', 'krzysio', 'krzysio');
if (mysqli_connect_errno())
{
echo 'Bł±d: Poł±czenie z baz± danych nie powiodło się. Spróbuj jeszcze raz póĽniej.';
exit;
}
$zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
echo '<p>Ilo¶ć znalezionych pozycji: '.$ile_znalezionych.'</p>';
for ($i=0; $i <$ile_znalezionych; $i++)
{
$wiersz = $wynik->fetch_assoc();
echo '<p><strong>'.($i+1).'. Tytuł: ';
echo stripslashes($wiersz['tytul']);
echo '</strong><br />Autor: ';
echo stripslashes($wiersz['autor']);
echo '<br />ISBN: ';
echo stripslashes($wiersz['isbn']);
echo '<br />Cena: ';
echo stripslashes($wiersz['cena']);
echo '</p>';
}
$wynik->free();
$db->close();
?>
</body>
</html>
Tylko, że zamiast podawać mi wyniki wyszukania jest pusta strona. Nawet nie wywala mi żadnego błędu, że nie mógł się połączyć z bazą danych. Czyli wygląda na to (przynajmniej teoretycznie) że połączył się z bazą. Tylko dlaczego nic nie wyszukał . Jeżeli nic nie wyszukał to powinien napisać że znaleziono "0".
Później użyłem ogólnego interfejsu bazodanowego Pear DB oto kod:
Kod
<html>
<head>
<title>"Ksi±żkorama"-Rezultaty wyszukiwania</title>
</head>
<body>
<h1>"Ksi±żkorama"-Rezultaty wyszukiwania</h1>
<?php
// utworzenie krótkich nazw zmiennych
$metoda_szukania=$_POST['metoda_wysz'];
$wyrazenie=$_POST['wyrazenie'];
$wyrazenie= trim($wyrazenie);
if (!$metoda_szukania || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
exit;
}
if (!get_magic_quotes_gpc())
{
$metoda_szukania = addslashes($metoda_szukania);
$wyrazenie = addslashes($wyrazenie);
}
// okre¶lenie ustawień dla PEAR DB
require_once('DB.php');
$uzytkownik = 'krzysio';
$haslo = 'krzysio';
$komputer = 'localhost';
$nazwa_bazy = 'krzysio_mybooks';
// ustawienie uniwersalnego łańcucha poł±czenia lub DSN
$dsn = "mysqli://$uzytkownik:$haslo@$komputer/$nazwa_bazy";
// poł±czenie z baz± danych
$db = &DB::connect($dsn);
// sprawdzenie, czy poł±czenie zostało ustanowione
if (DB::isError($db))
{
echo $db->getMessage();
exit;
}
// wykonanie zapytania
$zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
$wynik = $db->query($zapytanie);
// sprawdzenie, czy wynik jest OK
if (DB::isError($wynik))
{
echo $db->getMessage();
exit;
}
// pobranie liczby zwróconych wierszy
$ile_znalezionych = $wynik->numRows();
// wy¶wietlenie każdego zwróconego wiersza
for ($i=0; $i <$ile_znalezionych; $i++)
{
$wiersz = $wynik->fetchRow(DB_FETCHMODE_ASSOC);
echo '<p><strong>'.($i+1).'. Tytul: ';
echo htmlspecialchars(stripslashes($wiersz['tytul']));
echo '</strong><br />Autor: ';
echo stripslashes($wiersz['autor']);
echo '<br />ISBN: ';
echo stripslashes($wiersz['isbn']);
echo '<br />Cena: ';
echo stripslashes($wiersz['cena']);
echo '</p>';
}
// rozł±czenie się z baz± danych
$db->disconnect();
?>
</body>
</html>
<head>
<title>"Ksi±żkorama"-Rezultaty wyszukiwania</title>
</head>
<body>
<h1>"Ksi±żkorama"-Rezultaty wyszukiwania</h1>
<?php
// utworzenie krótkich nazw zmiennych
$metoda_szukania=$_POST['metoda_wysz'];
$wyrazenie=$_POST['wyrazenie'];
$wyrazenie= trim($wyrazenie);
if (!$metoda_szukania || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
exit;
}
if (!get_magic_quotes_gpc())
{
$metoda_szukania = addslashes($metoda_szukania);
$wyrazenie = addslashes($wyrazenie);
}
// okre¶lenie ustawień dla PEAR DB
require_once('DB.php');
$uzytkownik = 'krzysio';
$haslo = 'krzysio';
$komputer = 'localhost';
$nazwa_bazy = 'krzysio_mybooks';
// ustawienie uniwersalnego łańcucha poł±czenia lub DSN
$dsn = "mysqli://$uzytkownik:$haslo@$komputer/$nazwa_bazy";
// poł±czenie z baz± danych
$db = &DB::connect($dsn);
// sprawdzenie, czy poł±czenie zostało ustanowione
if (DB::isError($db))
{
echo $db->getMessage();
exit;
}
// wykonanie zapytania
$zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
$wynik = $db->query($zapytanie);
// sprawdzenie, czy wynik jest OK
if (DB::isError($wynik))
{
echo $db->getMessage();
exit;
}
// pobranie liczby zwróconych wierszy
$ile_znalezionych = $wynik->numRows();
// wy¶wietlenie każdego zwróconego wiersza
for ($i=0; $i <$ile_znalezionych; $i++)
{
$wiersz = $wynik->fetchRow(DB_FETCHMODE_ASSOC);
echo '<p><strong>'.($i+1).'. Tytul: ';
echo htmlspecialchars(stripslashes($wiersz['tytul']));
echo '</strong><br />Autor: ';
echo stripslashes($wiersz['autor']);
echo '<br />ISBN: ';
echo stripslashes($wiersz['isbn']);
echo '<br />Cena: ';
echo stripslashes($wiersz['cena']);
echo '</p>';
}
// rozł±czenie się z baz± danych
$db->disconnect();
?>
</body>
</html>
To tu o dziwo wywala mi błąd:
"DB Error: extension not found"
Proszę o pomoc! Gdzie jest błąd?

Jest to przykład wzięty żywcem z książki:"php i MySQL Tworzenie stron WWW Vademecum profesionalisty wydanie 3"
