06-08-2011, 00:41
no przecież przeczytałem inaczej bym się za to nie brał. Więc rozumiem że nie...
Zrobiłem przykładową baze danych i napisałem do niej kod który wyszukuje w niej dane:
szukaj.php
rezultaty.php
Ale bez przerwy wyskakuje mi błąd z polaczeniem do bazy.
Zrobiłem przykładową baze danych i napisałem do niej kod który wyszukuje w niej dane:
szukaj.php
Kod:
<html>
<head>
<title>Wyszukiwanie książek</title>
</head>
<body>
<h1>Wyszukiwanie książek</h1>
<form action="rezultaty.php" method="post">
Wybierz metodę wyszukiwania:<br />
<select name="metoda_szukania">
<option value="autor">Autor</option>
<option value="tytul">Tytuł</option>
<option value="isbn">ISBN</option>
</select>
<br />
Wprowadź poszukiwane wyrażenie:<br />
<input name="wyrazenie" type="text" size="40">
<br />
<input type="submit" name="submit" value="Szukaj">
</form>
</body>
</html>
rezultaty.php
Kod:
<html>
<head>
<title>Rezultaty wyszukiwania</title>
</head>
<body>
<h1>Rezultaty wyszukiwania </h1>
<?php
// utworzenie krótkich nazw zmiennych
$metoda_szukania=$_POST['metoda_szukania'];
$wyrazenie=trim($_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', 'root', 'moje_haslo', 'ksiazki');
if (mysqli_connect_errno()) {
echo 'Bład: Połaczenie z baza danych nie powiodło się. Spróbuj jeszcze raz pózniej.';
exit;
}
$zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
echo "<p>Ilosć 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>
Ale bez przerwy wyskakuje mi błąd z polaczeniem do bazy.