Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL I PHP] Problem z fetch_assoc
elwierka
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 26.12.2007

Ostrzeżenie: (0%)
-----


Witajcie

Właśnie próbuję napisać aplikację do składania zamówień przez internet i mam problem z odczytywaniem wyników zapytań z bazy danych mysql :shout: . Pobieram dane z bazy i zwracam jako obiekt.
(fragment kodu)
  1. $lacz = con_to_db(); //funkcja ustanawiająca połączenie z bazą
  2. $zapytanie = "select * from klienci where login = '".$login."'";
  3. $wynik = $lacz->query($zapytanie);
  4.  
  5. if (!$wynik) {
  6. throw new Exception('Błąd.');
  7. }
  8.  
  9. $ilosc = $wynik->num_rows;
  10.  
  11. if($ilosc > 0) {
  12. while($rzad = $wynik->fetch_assoc()) {
  13. echo $rzad['adres']."<br />;
  14. echo $rzad['nip']."<br />;
  15. }
  16. } else {
  17. echo "Komunikat o błędzie";
  18. }

Niestety, jak odczytuję wyniki za pomocą fetch_assoc(), skrypt podczas wykonywania się, resetuje połączenie..."Połaczenie zostało przerwane podczas negocjacji" - pojawia się komunikat w tym stylu.

Nie ma jednak żadnego problemu, jeśli zamiast fetch_assoc() użyję fetch_row i odczytuję wyniki jako $rzad[0], $rzad[1] itd.....

Tak samo jest, jeśli chcę odczytać dane o wszystkich osobach, zawarte w tabeli klienci (nie dane konkretnej osoby).

Od kilku dni nie mogę sobie poradzić z tym problemem...a muszę dalej pisać aplikację...Czy ktoś z Was wie o co może chodzić? Dlaczego tak się dzieje?

Z góry dzięki za odp.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
elwierka
post
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 26.12.2007

Ostrzeżenie: (0%)
-----


Tak więc, przedstawiam kod. Funkcje tworz_nagl_html(), menu(), tworz_stopke() mają jedynie za zadanie wyświetlić te elementy na stronie.

  1. require_once('funkcje_aplikacji.php');
  2. tworz_nagl_html('Dane klienta');
  3. sprawdz_zalogowanie_uzyt();
  4.  
  5. $lacz = con_to_db(); //funkcja ustanawiająca połączenie z bazą
  6. $zapytanie = "select * from klienci where login = '".$_SESSION['user_ok']."'";
  7. $wynik = $lacz->query($zapytanie);
  8.  
  9. if (!$wynik) {
  10. throw new Exception('Błąd.');
  11. }
  12.  
  13. $ilosc = $wynik->num_rows;
  14.  
  15. if($ilosc > 0) {
  16. while($rzad = $wynik->fetch_assoc()) {
  17. //odczytywanie danych z kolumn tabeli, np.
  18. echo $rzad['adres']."<br />";
  19. echo $rzad['nip']."<br />";
  20. }
  21. } else {
  22. echo "Komunikat o błędzie";
  23. }
  24.  
  25. menu();
  26. tworz_stopke();
  27.  


wykorzystywane funkcje:

  1. function con_to_db() {
  2. @ $db = new mysqli('localhost','user','pass','nazwa_db');
  3. if (!$db) {
  4. throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  5. } else {
  6. return $db;
  7. }
  8. }
  9.  
  10. function sprawdz_zalogowanie_uzyt() {
  11. //funkcja sprawdza, czy użytkownik jest zalogowany, jeśli nie to informuje o tym
  12. if (isset($_SESSION['user_ok'])) {
  13. echo "Zalogowano jako ".$_SESSION['user_ok'].".<br />";
  14. } else {
  15. // nie jest zalogowany
  16. tworz_nagl_html('Nie zostałeś zalogowany do systemu:');
  17. echo 'Brak zalogowania.<br />';
  18. tworz_HTML_URL('logow_do_sys.php', 'Logowanie');
  19. tworz_stopke();
  20. }


Nie mam w tym momencie możliwości spr
  1. $rzad = $wynik->fetch_array(MYSQLI_ASSOC);


sprawdzę po południu i dam znać co się dzieje.

No niestety dzieje się to samo, czyli resetuje się połączenie...

"Przerwane połączenie
Połączenie z serwerem zostało zresetowane podczas wczytywania strony.
Połączenie sieciowe zostało przerwane podczas negocjacji. Spróbuj ponownie."

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 13:56