![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
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> 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> 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> 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" ![]() Ten post edytował krzysio_w 15.08.2006, 08:39:39 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 4.12.2005 Skąd: Strzyżów Ostrzeżenie: (0%) ![]() ![]() |
a może używaj mysql zamiast mysqli ?
-------------------- "No bo z fasolą to człowiek przynajmniej wie, na czym stoi..."
Pomniejsze bóstwa, Terry Pratchett php :* |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 475 Pomógł: 0 Dołączył: 1.04.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:43 |