Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pobieranie całej tabeli...
Forum PHP.pl > Forum > Przedszkole
Lee
Mam taką oto klase którą pobieram dane pierwszego wpisu z wybranej tabeli
  1. <?php
  2. class poloczenie {
  3. public $wykonaj;
  4. public $wynik;
  5. public $zapytanie;
  6.  
  7. public function __construct($host, $user, $pass, $db_name) {
  8. echo 'Wywołanie konstruktora <br />';
  9. @$this -> wykonaj = mysql_connect($host, $user, $pass) or die ("Wywołanie połączenia z bazą danych nie powiodło się");
  10. @mysql_select_db("$db_name") or die ("Nie udało się wybrać podanej bazy danych !");
  11. }
  12. public function num_rows($zapytanie) {
  13. @$this -> wykonaj = mysql_query($zapytanie) or die ("Błąd w 14 linii");
  14. @$this -> wynik = mysql_num_rows($this -> wykonaj) or die ("Błąd w 15 linii");
  15. return $this -> wynik;
  16. }
  17. public function fetch_assoc($zapytanie) {
  18. @$this -> wykonaj = mysql_query($zapytanie) or die ("Błąd w 20 linii");
  19. @$this -> wynik = mysql_fetch_assoc($this -> wykonaj) or die ("Błąd w 21 linii");
  20. return $this -> wynik;
  21. }
  22.  
  23. }
  24.  
  25. $poloczenie= new poloczenie('host', 'uzytkownik', 'haslo', 'nazwa bazy danych);
  26. echo 'Wykonujemy proste zapytanie (';
  27. $poloczenie -> zapytanie = "SELECT * FROM test";
  28. echo $poloczenie -> zapytanie;
  29. $query = $poloczenie -> fetch_assoc($poloczenie-> zapytanie) or die ("Błąd w 31 linii");
  30. echo ')<br />Wynik zapytania = <b>';
  31. echo $query['nazwa'];
  32. echo'</b>';
  33. ?>

no i jak przerobić tą klase żeby pobierała wszystkie wpisy z danej tabeli...widziałem w kursie taki przykład (co pobiera wszystkie dane) ale nie umiem tego skryptu tak przerobić bo tamten był pod PostgreSQL i trochę inaczej wyglądał rolleyes.gif
KG-
Tak ciężko poszukać? smile.gif
Temat: phpPobieranie wartosci CAEGO zapytania do zmiennej
To powinno cię naprowadzić na to co musisz zmienić.
Lee
liniowo to już dawno wiedziałem jak, mi chodzi o OOP rolleyes.gif

poradziłem sobie sam winksmiley.jpg - nabieram wprawy ^^
  1. <?php
  2. class sql {
  3. public $wykonaj;
  4. public $wynik;
  5. public $zapytanie;
  6. public $row;
  7.  
  8. public function __construct($host, $user, $pass, $db_name) {
  9. echo 'Wywołanie konstruktora <br />';
  10. $this -> wykonaj = mysql_connect($host, $user, $pass) or die ("Wywołanie połączenia z bazą danych nie powiodło się");
  11. mysql_select_db("$db_name") or die ("Nie udało się wybrać podanej bazy danych !");
  12. }
  13. public function num_rows($zapytanie) {
  14. $this -> wykonaj = mysql_query($zapytanie) or die ("Błąd w 14 linii");
  15. $this -> wynik = mysql_num_rows($this -> wykonaj) or die ("Błąd w 15 linii");
  16. return $this -> wynik;
  17. }
  18. public function mysql_query($zapytanie) {
  19. $this -> wykonaj = fetch_assoc($zapytanie) or die ("Błąd w 20 linii");
  20. while ($this -> wynik = mysql_fetch_assoc($this -> wykonaj)){
  21. $this -> row[] = $this -> wynik;
  22. }
  23. return $this -> row;
  24. }
  25.  
  26. }
  27.  
  28. $sql= new sql('host, 'user', 'pass', 'db_name');
  29. echo 'Wykonujemy proste zapytanie (';
  30. $sql -> zapytanie = "SELECT * FROM test";
  31. echo $sql -> zapytanie;
  32. echo ')<br />';
  33. echo $sql -> row;
  34. $Test = $sql -> fetch_assoc($sql -> zapytanie);
  35. foreach ($Test as $lista){
  36. echo $lista['nazwa'].'<br />';
  37. }
  38.  
  39. ?>

OOP rządzi bo teraz nie musze za każdym razem wpisywać tego całego kodu (mysql_query i mysql_fetch_assoc) tylko pisze
  1. <?php
  2. $nazwa_tablicy = $sql -> mysql_query($sql -> zapytanie)
  3. ?>

i już mam smile.gif

jeszcze raz napisze, że OOP jest super smile.gif wcześniej to była dla mnie czarna magia teraz zrobiła się szara a niedługo bedzie biała (dopiero 2/3 pierwszej częsci kursu z webcity.php opanowałem)

Pozdrawiam
Jim
żeby wyświetlić dane i pobrać ilość rekordów w wyniku 2 razy zostaje wykonane to samo zapytanie, niepotrzebnie.

  1. <?php
  2. public function num_rows($wynik=null) {
  3. return mysql_num_rows( (!empty($wynik)) ? $wynik : $this->wynik );
  4. }
  5. ?>

smile.gif
Lee
Tamta funkcja nie jest mi potrzebna, ale dzięki za fatyge aby mnie poinformować o moim niezamiezonym błędzie smile.gif

Pozdrawiam
nospor
lekki OT:

Cytat
("Błąd w 14 linii");
("Błąd w 15 linii");
("Błąd w 20 linii");

No to teraz dodaj sobie cos na początku skryptu, albo gdzies w srodku i.... caly system komunikatow szlag trafil... i musisz poprawiac wszystkie linie.
Ale jak zwykle z pomocą nadchodzi nieoceniony manual:
http://pl.php.net/manual/pl/language.const....predefined.php
Lee
Ten "skrypt" jest dla utrwalenia wiadomości i raczej napewno nie bedzie używany w przyszłości winksmiley.jpg
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.