Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Błąd mysql_fetch_assoc() expects parameter 1 to be resource, null given in
kecajs
post 19.08.2015, 22:08:47
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


Witam,
walczę z pewnym kodem i wyskakuje mi taki właśnie błąd: mysql_fetch_assoc() expects parameter 1 to be resource, null given in ścieżka on line 47.
Kod ten ma za zadanie wyciągnąć z bazy tylko dane jednego artykułu, na podstawie zmiennej LacznikID.
Oto kod strony pokaz.php, odpowiedzialnej za wyświetlanie tychże danych.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  4. <link rel="stylesheet" href="style.css" type="text/css">
  5. </head>
  6.  
  7. <body>
  8.  
  9. <h1><center>Szczegóły asortymentu</center></h1><br>
  10.  
  11. <table border="1" width="90%" align=center cellpadding=2>
  12. <tr>
  13. <td width="20" class="table_small">Lp</td>
  14. <td width="130" class="table_small">Nazwa</td>
  15. <td width="40" class="table_small">Materiał</td>
  16. <td width="60" class="table_small">Dostawca</td>
  17. <td width="60" class="table_small">Producent</td>
  18. <td width="50" class="table_small">Lokacja</td>
  19. <td width="40" class="table_small">Waga</td>
  20. <td width="40" class="table_small">Stan</td>
  21. </tr>
  22. <?php
  23. include_once ("db_con.php");
  24. $connection = dbconn::instance();
  25.  
  26. // tutaj wywolanie zapytania do bazy
  27. if (isset($_GET['LacznikID']) && $_GET['LacznikID'] != '') {
  28. $tut_nr = mysql_real_escape_string($_GET['LacznikID']);
  29. $wynik = $connection->query('
  30. SELECT
  31. LacznikID,
  32. Nazwa,
  33. Material,
  34. DostawcaID,
  35. ProducentID,
  36. Lokacja,
  37. Waga,
  38. Stan
  39. FROM
  40. tb_laczniki_main
  41. WHERE
  42. LacznikID='.$tut_nr
  43. );
  44. }
  45.  
  46. while ($r = mysql_fetch_assoc($wynik)) {
  47. echo '<tr>';
  48. echo '<td width="20" class="table_small">' . $r['LacznikID'] . '</td>';
  49. echo '<td width="130" class="table_small">' . $r['Nazwa'] . '</td>';
  50. echo '<td width="40" class="table_small">' . $r['Material'] . '</td>';
  51. echo '<td width="60" class="table_small">' . $r['DostawcaID'] . '</td>';
  52. echo '<td width="60" class="table_small">' . $r['ProducentID'] . '</td>';
  53. echo '<td width="50" class="table_small">' . $r['Lokacja'] . '</td>';
  54. echo '<td width="40" class="table_small">' . $r['Waga'] . '</td>';
  55. echo '<td width="40" class="table_small">' . $r['Stan'] . '</td>';
  56. echo "</tr>";
  57. }
  58. ?>
  59. </table>
  60.  
  61. </body>
  62. </html>


Z kolei kod w pliku, z którego następuje wywołanie konkretnego artykułu wygląda tak.
  1. <!doctype html >
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-type" content="text/html;charset=utf-8">
  5. <link rel="stylesheet" href="style.css"/>
  6. </head>
  7.  
  8. <body>
  9. <center><strong>Zestawienie łączników</strong></center><br><br>
  10. <table border="1" width="90%" align=center cellpadding=2>
  11. <tr>
  12. <td width="20" class="table_small">Lp</td>
  13. <td width="130" class="table_small">Nazwa</td>
  14. <td width="40" class="table_small">Materiał</td>
  15. <td width="60" class="table_small">Dostawca</td>
  16. <td width="60" class="table_small">Producent</td>
  17. <td width="50" class="table_small">Lokacja</td>
  18. <td width="40" class="table_small">Waga</td>
  19. <td width="40" class="table_small">Stan</td>
  20. </tr>
  21. <?php
  22. include_once ("db_con.php");
  23. $connection = dbconn::instance();
  24. $wynik = $connection->query("
  25. SELECT
  26. LacznikID,
  27. Nazwa,
  28. Material,
  29. DostawcaID,
  30. ProducentID,
  31. Lokacja,
  32. Waga,
  33. Stan
  34. FROM
  35. tb_laczniki_main
  36. ORDER BY
  37. LacznikID ASC
  38. ");
  39. while ($r = mysql_fetch_assoc($wynik)) {
  40. echo '<tr>';
  41. echo '<td width="20" class="table_small"><a href="index.php?sr=pokaz&artykul_id='.$r['LacznikID'].'">'.$r['LacznikID'].'</a></td>';
  42. echo '<td width="130" class="table_small">' . $r['Nazwa'] . '</td>';
  43. echo '<td width="40" class="table_small">' . $r['Material'] . '</td>';
  44. echo '<td width="60" class="table_small">' . $r['DostawcaID'] . '</td>';
  45. echo '<td width="60" class="table_small">' . $r['ProducentID'] . '</td>';
  46. echo '<td width="50" class="table_small">' . $r['Lokacja'] . '</td>';
  47. echo '<td width="40" class="table_small">' . $r['Waga'] . '</td>';
  48. echo '<td width="40" class="table_small">' . $r['Stan'] . '</td>';
  49. echo "</tr>";
  50. }
  51. ?>
  52. </table>
  53. </body>
  54. </html>


Gdzie mam szukać przyczyn tego komunikatu o błędzie? Poza tym, funkcja mysql_fetch_assoc jest odpowiedzialna za wyświetlanie tylu wierszy, ile wierszy spełnia zadane warunki - jeśli się nie mylę. A czy tą samą funkcję zastosować w moim przypadku, kiedy wiem, że nie będę miał więcej niż jeden wiersz lub gdybym chciał te dane zaprezentować w innym układzie niż tabela z nagłówkami i wierszami, np. w postaci formularza (tabela z kilkoma wierszami, bez nagłówków, opisy pól i wartości obok siebie)? Przeszukałem Google w obu kwestiach, jednak nie znalazłem odpowiedzi dokładnie na moje pytania...

I jeszcze mam pytanie o samo połączenie z bazą.
Mam dość dziwny twór, który ktoś kiedyś mi napisał
  1. <?php
  2.  
  3. abstract class Singleton {
  4.  
  5. protected static $_instance;
  6.  
  7. protected function __construct() {
  8.  
  9. }
  10.  
  11. public static function instance() {
  12.  
  13. }
  14.  
  15. }
  16.  
  17. class dbconn extends Singleton {
  18.  
  19. private $_conn;
  20. private $server = 'xxx';
  21. private $login = 'xxx';
  22. private $password = 'xxx';
  23. private $database = 'mz_warehouse';
  24.  
  25. protected function __construct() {
  26. $this->_conn = mysql_connect($this->server, $this->login, $this->password) or die(mysql_error());
  27. mysql_select_db($this->database, $this->_conn) or die(mysql_error()); mysql_query("SET NAMES 'utf8'");
  28. }
  29. public static function instance() {
  30. if (is_null(self::$_instance)) {
  31. self::$_instance = new dbconn();
  32. }
  33. return self::$_instance;
  34. }
  35.  
  36. public function query($query) {
  37. return mysql_query($query);
  38. }
  39.  
  40. public function insert($query) {
  41. if (mysql_query($query)) {
  42. } else {
  43. return 0;
  44. }
  45. }
  46.  
  47. public function select($query) {
  48. return mysql_num_rows(mysql_query($query));
  49. }
  50.  
  51. public function escape($string) {
  52. return htmlspecialchars(strip_tags($string));
  53. }
  54.  
  55. }
  56.  
  57. ?>

Czy zamiast tego mogę zastosować zdecydowanie krótszą formę znalezioną na którymś z forów
  1. <?php
  2. $db_connection = null;
  3. function polaczenie() {
  4. global $db_connection;
  5. $mysql_server = "xxx";
  6. $mysql_admin = "xxx";
  7. $mysql_pass = "xxx";
  8. $db_connection = mysql_connect($mysql_server, $mysql_admin, $mysql_pass) or die('Brak połączenia z serwerem MySQL.');
  9. @mysql_select_db($db_connection);
  10. }
  11. ?>

W jakim celu został użyty ten zwrot
  1. $connection = dbconn::instance();

Czy samo inkludowanie nie wystarczy?

Dzięki za wyrozumiałość i cierpliwość :)
Pozdrawiam,
kecajs
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
kapslokk
post 20.08.2015, 07:21:56
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


1. Sprawdź czy zapytanie nie generuje błędu - jeśli tak to mysql_query zwróci false i chyba stąd cały problem.
2.
  1. $connection = dbconn::instance();
jest użyte dlatego, że klasa dbconn wykorzystuje singleton'a.
http://phpedia.pl/wiki/Singleton
3. Możesz użyć:
  1. $db_connection = null;
  2. function polaczenie() {
  3. global $db_connection;
  4. $mysql_server = "xxx";
  5. $mysql_admin = "xxx";
  6. $mysql_pass = "xxx";
  7. $db_connection = mysql_connect($mysql_server, $mysql_admin, $mysql_pass) or die('Brak połączenia z serwerem MySQL.');
  8. @mysql_select_db($db_connection);
  9. }

ale będziesz musiał przepisać kod bo $connection->query() nie będzie już działać.
Go to the top of the page
+Quote Post
MESSIAH :)
post 20.08.2015, 07:22:39
Post #3





Grupa: Zarejestrowani
Postów: 249
Pomógł: 0
Dołączył: 22.12.2011

Ostrzeżenie: (10%)
X----


Mysql oczekuje jakiś jeden parametr a otrzymał Goowno. Innymi słowy :
  1. mysql_fetch_assoc ( $wynik ))
podstaw odpowiedni parametr do $wynik zobacz w dokumentacji - pewnie chodzi o połączenie z bazą danych.


--------------------
Go to the top of the page
+Quote Post
kecajs
post 20.08.2015, 17:12:37
Post #4





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


Cytat(kapslokk @ 20.08.2015, 08:21:56 ) *
1. Sprawdź czy zapytanie nie generuje błędu - jeśli tak to mysql_query zwróci false i chyba stąd cały problem.

A czy muszę robić to z wykorzystaniem funkcji mysql_fetch_assoc, czy nie? Zawsze będzie wyciągana z bazy informacja o konkretnym artykule i zawsze będzie tylko jedna. W jaki sposób mogę zaprezentować dane aby wyglądały jak formularz. Przykładowo:
wiersz 1. - Lp. 2 | Nazwa Przykładowa nazwa artykułu
wiersz 2. - Materiał jakiś materiał | Norma norma produktu
wiersz 3. - Stan stan produktu | Lokacja rozmieszczenie w magazynie | Waga waga produktu
wiersz 4. - Dostawca Dostawca | Producent Producent
a nie w postaci tabeli.
Cytat
2.
  1. $connection = dbconn::instance();
jest użyte dlatego, że klasa dbconn wykorzystuje singleton'a.
http://phpedia.pl/wiki/Singleton

Czy to rozwiązanie jest dużo lepsze od przedstawionego poniżej? Bo Twój przykład poniżej, a mój kod wstawiony w poprzedniej wiadomości znacznie się różnią wielkością.
Cytat
3. Możesz użyć:
  1. $db_connection = null;
  2. function polaczenie() {
  3. global $db_connection;
  4. $mysql_server = "xxx";
  5. $mysql_admin = "xxx";
  6. $mysql_pass = "xxx";
  7. $db_connection = mysql_connect($mysql_server, $mysql_admin, $mysql_pass) or die('Brak połączenia z serwerem MySQL.');
  8. @mysql_select_db($db_connection);
  9. }

ale będziesz musiał przepisać kod bo $connection->query() nie będzie już działać.

Czyli zamiast
  1. $wynik = $connection->query()

mam wpisać
  1. $wynik = $db_connection->query()
?
Dzięki za pomoc :)

Cytat(MESSIAH :) @ 20.08.2015, 08:22:39 ) *
Mysql oczekuje jakiś jeden parametr a otrzymał Goowno. Innymi słowy :
  1. mysql_fetch_assoc ( $wynik ))
podstaw odpowiedni parametr do $wynik zobacz w dokumentacji - pewnie chodzi o połączenie z bazą danych.

Ale zmienna $wynik odwołuje sie do
  1. $wynik = $connection->query()
, zaś $connection do
  1. $connection = dbconn::instance();
.
W takim razie jak zmienię skrypt logowania na przykład na ten zaproponowany przez kapslokk i powinno być wszystko ok?

Ten post edytował kecajs 20.08.2015, 17:14:50
Go to the top of the page
+Quote Post
viking
post 20.08.2015, 17:57:37
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Ogólnie cały ten kod singletona, twojej klasy db nadaje się do kosza chyba tylko. Przede wszystkim stare mysql_ zamiast PDO albo Mysqli. Zero możliwości, niezabezpieczony i tworzy kłopoty. Jest jakiś powód dla którego piszesz w ten sposób?


--------------------
Go to the top of the page
+Quote Post
kecajs
post 20.08.2015, 18:36:47
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


Cytat(viking @ 20.08.2015, 18:57:37 ) *
Ogólnie cały ten kod singletona, twojej klasy db nadaje się do kosza chyba tylko. Przede wszystkim stare mysql_ zamiast PDO albo Mysqli. Zero możliwości, niezabezpieczony i tworzy kłopoty. Jest jakiś powód dla którego piszesz w ten sposób?

Nie, nie ma żadnego. Swego czasu ktoś mi napisał taki skrypt do łączenia się z bazą i go używam do teraz.
Czy w zupełności wystarczy mi skrypt zaproponowany przez kapslokk?

Ten post edytował kecajs 20.08.2015, 18:37:01
Go to the top of the page
+Quote Post
viking
post 20.08.2015, 18:45:42
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Kapslokk zaproponował gołą funkcję łączącą się z bazą. Zrób to nowocześnie i bezpiecznie.


--------------------
Go to the top of the page
+Quote Post
kecajs
post 20.08.2015, 20:02:15
Post #8





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


A jak to zrobić nowocześnie i bezpiecznie? Czy dla celów testowych wystarczy ta goła funkcja łącząca się z bazą?
Go to the top of the page
+Quote Post
viking
post 20.08.2015, 20:21:34
Post #9





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Odpal mysql_error() w kodzie po kolejnych krokach oraz zapoznaj się z Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy jak wyświetlać błędy. Nowocześnie to PDO + prepared statements.


--------------------
Go to the top of the page
+Quote Post
kecajs
post 20.08.2015, 20:22:07
Post #10





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


Trochę pozmieniałem.
Do pliku db_con.php wrzuciłem to, co zaproponował kapslokk. Z kolei kod w pliku pokaz.php wygląda teraz tak. (od części nawiązującej do bazy danych).
  1. <?php
  2.  
  3. require "db_con.php";
  4. $connection = connection();
  5. // tutaj wywolanie zapytania do bazy
  6. if (isset($_GET['LacznikID']) && $_GET['LacznikID'] != '') {
  7. $tut_nr = mysql_real_escape_string($_GET['LacznikID']);
  8. $zapytanie = "
  9. SELECT
  10. LacznikID,
  11. Nazwa,
  12. Material,
  13. DostawcaID,
  14. ProducentID,
  15. Lokacja,
  16. Waga,
  17. Stan
  18. FROM
  19. tb_laczniki_main
  20. WHERE
  21. LacznikID=.$tut_nr";
  22. $wynik = $connection->query($zapytanie);
  23. }
  24.  
  25. while ($r = mysql_fetch_assoc($wynik)) {
  26. echo '<tr>';
  27. echo '<td width="20" class="table_small">' . $r['LacznikID'] . '</td>';
  28. echo '<td width="130" class="table_small">' . $r['Nazwa'] . '</td>';
  29. echo '<td width="40" class="table_small">' . $r['Material'] . '</td>';
  30. echo '<td width="60" class="table_small">' . $r['DostawcaID'] . '</td>';
  31. echo '<td width="60" class="table_small">' . $r['ProducentID'] . '</td>';
  32. echo '<td width="50" class="table_small">' . $r['Lokacja'] . '</td>';
  33. echo '<td width="40" class="table_small">' . $r['Waga'] . '</td>';
  34. echo '<td width="40" class="table_small">' . $r['Stan'] . '</td>';
  35. echo "</tr>";
  36. }
  37. ?>

Teraz mam taki komunikat:
Fatal error: Call to a member function query() on a non-object in ...
Jak to ugryźć?

Ten post edytował kecajs 20.08.2015, 22:43:02
Go to the top of the page
+Quote Post
viking
post 21.08.2015, 06:56:02
Post #11





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


$connection = connection(); // tu wywołujesz funkcję

$connection->query($zapytanie); // tutaj powinien być obiekt.

Poczytaj jakiś kurs o podstawach. Tworzenie obiektów a zamiast tak rzeźbić użyj PDO.


--------------------
Go to the top of the page
+Quote Post
kecajs
post 25.08.2015, 21:24:54
Post #12





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


Znalazłem coś takiego na Wikibooks:
  1. <?php
  2. $mysql_host = 'localhost'; //lub jakiś adres: np sql.nazwa_bazy.nazwa.pl
  3. $port = '3307'; //domyślnie jest to port 3306
  4. $username = 'login';
  5. $password = 'hasło';
  6. $database = 'nazwa_bazy'; //'produkty'
  7.  
  8. try{
  9. $pdo = new PDO('mysql:host='.$mysql_host.';dbname='.$database.';port='.$port, $username, $password );
  10. echo 'Połączenie nawiązane!';
  11. }catch(PDOException $e){
  12. echo 'Połączenie nie mogło zostać utworzone.<br />';
  13. }
  14. ?>

Podstawiłem tu moje dane i jest to plik db_con.php

Znalazłem tu także kod umożliwiający połączenie się z bazą:
  1. <?php
  2.  
  3. try
  4. {
  5. $pdo = new PDO('mysql:host=localhost;dbname=produkty', 'root', 'root');
  6. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  7.  
  8. $stmt = $pdo->query('SELECT id, nazwa, opis FROM produkty');
  9. echo '<ul>';
  10. foreach($stmt as $row)
  11. {
  12. echo '<li>'.$row['nazwa'].': '.$row['opis'].'</li>';
  13. }
  14. $stmt->closeCursor();
  15. echo '</ul>';
  16. }
  17. catch(PDOException $e)
  18. {
  19. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  20. }
  21. ?>

I teraz zastanawiam się, jak podmienić ten mój kod w pliku pokaz.php i wykorzystać ten powyższy kod, jednocześnie nie budować kompletnie mi w tym przypadku nie potrzebnej tabeli z wierszami wynikowymi, bo jak pisałem we wcześniejszych postach - w tym przypadku wynik będzie zawsze jednowierszowy.
I proszę mnie potraktować trochę ulgowo, bo to co robię, ma na celu jedynie przedstawić możliwości i ogólny zarys funkcjonowania aplikacji. Po akceptacji osób decyzyjnych i tak zajmie się tym programista. Ja jestem początkującym amatorem próbującym coś tam klecić, a nie uważam się za programistę. Jestem ekonomistą :)

Pozdrawiam

Hmm, no cóż, wygląda na to, że pozostałem sam na polu boju... Nic nowego. Temat można zamknąć, bo po co ma wisieć martwy.

Ten post edytował kecajs 23.08.2015, 22:10:49
Go to the top of the page
+Quote Post
viking
post 26.08.2015, 05:36:16
Post #13





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Ale jaki jest tym razem problem konkretnie? Piszesz że nie chcesz budować tabeli - i nie budujesz. Masz generowana listę ul-li.


--------------------
Go to the top of the page
+Quote Post
kecajs
post 26.08.2015, 12:55:41
Post #14





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


Chodzi o to, w jaki sposób przedstawić wynik dla jednego konkretnego artykułu. Dla większej liczby budujemy tabelę funkcją mysql_fetch_assoc(), zaś dla jednego, konkretnego wyniku jak pokazać te informacje?
Z racji tego, że chodzi mi tylko o zaprezentowanie funkcjonalności, a nie tworzę aplikacji do użytkowania, więc sposób łączenia z bazą pozostawiam tak, jak w początkowych wpisach przedstawiłem - nie wykorzystuję pdo i mysqli, tylko mysql.
Dzięki za odpowiedź.
Go to the top of the page
+Quote Post
viking
post 26.08.2015, 13:28:45
Post #15





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


W zapytaniu LIMIT 1. Wybranie jednego rekordu w PHP http://www.php.net/manual/en/pdostatement.fetch.php


--------------------
Go to the top of the page
+Quote Post
kecajs
post 26.08.2015, 15:01:47
Post #16





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


OK, ale czy do tego celu muszę stosować funkcję mysql_fetch_array(), czy też mogę zaprezentować te dane w inny sposób? W ogóle nie chcę ich prezentować w układzie tabelarycznym (nagłówek u góry i dane poniżej), a bardziej w układzie formularza (nazwa pola i obok dane, np. |Nr artykułu| 1|Nazwa artykułu|Śruba M16 x 110| i tak dalej. Jak to mogę zaprezentować?
Go to the top of the page
+Quote Post
nospor
post 26.08.2015, 15:05:04
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




fetch() zwraca ci jeden rekord w postaci tablicy. Jak ty to sobie wyswietlisz i gdzie to tylki i wylacznie Twoja sprawa.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:31