Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]problem z połączeniem się do bazy MySQL?
Forum PHP.pl > Forum > Przedszkole
imysz
Witam. mam formularz i plik php który go przetwarza. ale skrypt w ogóle nie działa jak nie dało się połączyć z bazą. gdy wpisze jakiekolwiek hasło do szukania to po przyciśnięciu 'szukaj' pojawia się pusta strona jakby był jakiś błąd w kodzie. Raczej nie powinno takiego być bo to przykład przepiany z książki.

  1. <title>Wyszukiwanie książek w księgarni "Książkorama"</title>
  2. </head>
  3.  
  4. <h1>Wyszukiwanie książek w księgarni "Książkorama"</h1>
  5.  
  6. <form action="rezultaty.php" method="post">
  7. Wybierz metodę wyszukiwania:<br />
  8. <select name="metoda_szukania">
  9. <option value="autor">Autor
  10. <option value="tytul">Tytuł
  11. <option value="isbn">ISBN
  12. </select>
  13. <br />
  14. Wprowadź poszukiwane wyrażenie:<br />
  15. <input name="wyrazenie" type="text">
  16. <br />
  17. <input type="submit" value="Szukaj">
  18. </form>
  19.  
  20. </body>
  21. </html>


plik php

  1. <html>
  2. <head>
  3. <title>"Książkorama"-Rezultaty wyszukiwania</title>
  4. </head>
  5. <body>
  6. <h1>"Książkorama"-Rezultaty wyszukiwania </h1>
  7. <?php
  8. // utworzenie krótkich nazw zmiennych
  9. $metoda_szukania=$_POST['metoda_szukania'];
  10. $wyrazenie=$_POST['wyrazenie'];
  11.  
  12. $wyrazenie = trim($wyrazenie);
  13.  
  14. if (!$metoda_szukania || !$wyrazenie)
  15. {
  16. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  17. }
  18.  
  19. {
  20. $metoda_szukania = addslashes($metoda_szukania);
  21. $wyrazenie = addslashes($wyrazenie);
  22. }
  23.  
  24. $db = new mysqli('loacalhost', 'ksiazkorama', 'haslo', 'ksiazki');
  25.  
  26. if (mysqli_connect_errno())
  27. {
  28. echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  29. }
  30.  
  31. $zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
  32. $wynik = $db->query($zapytanie);
  33.  
  34. $ile_znalezionych = $wynik->num_rows;
  35.  
  36. echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  37.  
  38. for ($i=0; $i <$ile_znalezionych; $i++)
  39. {
  40. $wiersz = $wynik->fetch_assoc();
  41. echo '<p><strong>'.($i+1).'. Tytuł: ';
  42. echo stripslashes($wiersz['tytul']);
  43. echo '</strong><br />Autor: ';
  44. echo stripslashes($wiersz['autor']);
  45. echo '<br />ISBN: ';
  46. echo stripslashes($wiersz['isbn']);
  47. echo '<br />Cena: ';
  48. echo stripslashes($wiersz['cena']);
  49. echo '</p>';
  50. }
  51.  
  52. $wynik->free();
  53. $db->close();
  54.  
  55. ?>
  56.  
  57. </body>
  58. </html>


jak to rozwiązać ?

pozdrawiam
kfc4
na początku rezultaty.php daj
  1. ini_set( 'display_errors', 'On' );
  2. error_reporting( E_ALL );

To wyświetli wszystkie błędy.
Void
Po pierwsze to wpisz na początku skryptu

to dowiesz się co powoduje błąd. Ale widzę na pierwszy rzut oka, że masz literówkę przy nazwie hosta w połączeniu z bazą.
  1. $db = new mysqli('loacalhost', 'ksiazkorama', 'haslo', 'ksiazki');
imysz
wpisałem error_reporting( E_ALL ); ale żaden nowy komunikat się nie pojawił.
faktycznie jest literówka, poprawiłem ją, ale nic to nie zmieniło dalej nie da rady wyszukać rekordów.
Void
To jeszcze ustaw display_errors w php.ini na "on" bo tak to się można bawić w wyszukiwanie błędów na ślepo smile.gif
imysz
okej coś się posunęło. wpisałem w php.ini linikę
extension=php_mysqli.dll i już teraz jest tak, że jak daję zapisz do bazy nową książkę to czasem zapisze a czasem wywali komunikat 'ze wystąpił błąd z aplikacją Apache.exe' a jak chcę przeszukać w bazie jakieś rekordy to zawsze wyrzuca ten błąd ? jakieś rozwiązanie ?
kfc4
Uch, sam stawiałeś ten serwer? Czy jakiś gotowy? Jak sam to zainstaluj jakąś paczkę. Na Windowsa mogę polecić XAMPP oraz WAMP.Sam używam WAMP. Taka gotowa paczka przygotuje Ci całe środowisko do pracy oraz sama skonfiguruje.
imysz
no sam sam to konfigurowałem. okej zobaczę jak z tą paczką. a jest możliwe żeby to jakoś naprawić ręcznie ? możliwe że to przez to że korzystam ze starej wersji apache 1.3 ?
kfc4
Ciężko jest określić co się stało, jak jest powód i jak to naprawić. Taki komunikat niezbyt wiele mówi. A co do wersji Apache - kiedyś była tylko ta i działało, ale kto wie... Możemy tylko się domyślać, że w którymś miejscu jest konfiguracja skopana.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.