Ostatnio (dzisiaj) postanowiłem zacząć OOP. Zacząłem od przerobienia mojego bardzo prostego kodu na dwie funkcje.
Otóż postanowiłem w zrobić funkcje odpowiadająca za połączenie się z baza danych i odpowiednie zakodowanie znaków, oraz funkcje odpowiadającą za wyświetlenie newsa.
Wszystko pięknie jeśli te dwa zadania sa w jednej funkcji, lub kod do połaczenia sie z bazą wklejam bezposrednio do plików news.php/newsy.php, ale kiedy chcę uzyć do połaczenia z baza osobnej funkcji wszystko sie sypie:
error news.php i newsy.php
Cytat
Fatal error: Call to a member function query() on a non-object in /home/diablo/domains/blizzworld.pl/public_html/test/inc/funkcje.php on line 17
Cytat
Fatal error: Call to a member function query() on a non-object in /home/diablo/domains/blizzworld.pl/public_html/test/inc/newsy.php on line 4
linia 17 i 4 wyglądają tak
$wynik = $db->query($zapytanie);
Nie mam pojęcia czemu nagle obiekt przestaje istniec, mam nadzieję, ze którys z obeznanych w OOP programistów powie mi co zrobiłem źle

Ponizej zawartości plików:
index.php
<?php include_once('inc/funkcje.php'); switch($_GET['s']) { case 'news': include_once('inc/news.php'); break; default: include_once('inc/newsy.php'); break; } ?>
inc/funkcje.php
<?php function lacz_bd() { @ $db = new mysqli('localhost', 'xxxx', 'xxxx', 'xxxx'); if (mysqli_connect_error()) { echo 'Nie można połaczyć się z baza MySql. Jeśli błąd będzie się powtarzał skontaktuj się z administratorem serwisu.'; exit; } $db->set_charset("utf8"); }; function show($typ) { $i = $_GET['id'] + 1; $zapytanie = "select * from ".$typ." where ".$typ."id=".$i; $wynik = $db->query($zapytanie); $wiersz = $wynik->fetch_assoc(); echo '<div class="tekst"><h1><a href="#">'.stripslashes($wiersz["tytul"]).'</a><u>['.stripslashes($wiersz["kategoria"]).', '.stripslashes($wiersz["data"]).']</u></h1> <div class="txt"> <p> </p> </div>'; $wynik->free(); $db->close(); } ?>
inc/newsy.php
<?php lacz_bd(); $zapytanie = "select * from news"; $wynik = $db->query($zapytanie); $wiersze = $wynik->num_rows; for($i = 0; $i < $wiersze; $i++) { $wiersz = $wynik->fetch_assoc(); echo '<div class="tekst"><h1><a href="index.php?s=news&id='.$i.'">'.stripslashes($wiersz["tytul"]).'</a><u>['.stripslashes($wiersz["kategoria"]).', '.stripslashes($wiersz["data"]).']</u></h1> <div class="txt"> <p> </p> <p class="komentarz"> <a href="#">Komentarze [4]</a> </p> </div>'; } $wynik->free(); $db->close(); ?>
i inc/news.php nad którym zaczałem pracowac i coś zaczeło się sypać

<?php lacz_bd(); show(news); ?>