Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa w klasie?
Forum PHP.pl > Forum > PHP > Object-oriented programming
Mlodycompany
Witam. Nie wiem jak opisać mój problem więc przedstawie kod i napisze co nie działa:P

  1. <?php
  2. class znajdz{
  3.  public function img($id){
  4.      $query = mysql_query("SELECT * FROM `zdjecia` WHERE `id_produktu` = '".$id."' AND `nazwa` = '".$id."-1.jpg'");
  5.      $row = mysql_fetch_array($query);
  6.      $zdjecie = $row[2];
  7.      if($zdjecie == ''){
  8.          $zdjecie = 'brak.gif';
  9.      }
  10.  return $zdjecie;
  11.  }
  12. }
  13.  
  14. class prt{
  15.  public function nowe_pro($URL){
  16.      $query = mysql_query("SELECT * FROM `produkty` ORDER BY `ID` DESC LIMIT 0,3");
  17.      while($row = mysql_fetch_array($query)){
  18.          echo('<table width="598" height="95%" id="new_pro" border="0" cellpadding="0" cellspacing="1">
  19.          <tr>
  20.              <th rowspan="4"><img src="'.$URL.'/img/'.$znajdz->img($row[0]).'" alt=""></th>
  21.              <th>Nazwa: '.$row['nazwa'].'</th>
  22.          </tr>
  23.          <tr>
  24.              <th>Cena: '.$row['cena'].' PLN</th>
  25.          </tr>
  26.          <tr>
  27.              <th>Sprzedający: <a href="'.$URL.'/profil/'.$row[3].'/">.znajdzUseraNick($row[3]).</a></th>
  28.          </tr>
  29.          <tr>
  30.              <th rowspan="0"><a href="'.$URL.'/product/'.$row[0].'/">Więcej</a></th>
  31.          </tr>
  32.      </table>');
  33.      }
  34.  }
  35. }
  36. ?>


Gdy odpalam ten o to skrypt wywala mi błąd: Fatal error: Call to a member function img() on a non-object in d:\usr\krasnal\www\a\func.php on line 39

Chodzi mi o to aby w klasie prt w funkcji nowe_pro w pewnym momencie pobierało dane za pomocą funkcji img z klasy znajdz. Czy ktoś orientuje się jak owy problem rozwiązać?questionmark.gif
wookieb
A podstawy OOP?

jak juz to
Kod
public static function img


i wtedy wywolujesz
Kod
znajdz::img()

Ale najpierw naucz się podstaw.
kwiateusz
to musisz przekazac tą klase do 2giej lub w wersji mało estetycznej inicjowac w konstruktorze klase znajdź albo zrobić ze znajdź metode statyczna... (edit: jw.)
Mlodycompany
wookieb a mógłbyś powiedzieć jeszcze gdzie to mam wstawić, bo gdy zacząłem wstawiać tam gdzie wydawało mi się to wyskakiwały jeszcze większe błędu:P
wookieb
W analogicznych miejscach? Podac wspolrzedne ekranowe czy jak? Zreszta kwiateusz bardzo ładnie ci napisał a ja dokończę "Naucz się PODSTAW".
marcio
Temat: user_class__dziedziczenie ostatni post co do przekazywania klasy do klasy.

A poprzez metody statyczne masz tutaj: Temat: Przekazanie_zmiennej_z_jednej_funkcji_statycznej_do_drugiej_wewnatrz_klasy

A co do instancji obiektu w konstruktorze klasy to tworzysz obiekt klasy jak wszedzie indziej.

P.S po co ci OOP jak ty mieszasz kod obiektowy i proceduralny i w ogole podstawy OOP sie klaniaja.
kwiateusz
no już nie chciałem go dołowac że to z oop nie ma duzo wspolnego i to samo osiagnie na funkcjach smile.gif ba nawet szybciej bo nie musi sie martwić instancjami obiektu
marcio
No to sie chlopak zdolowal tongue.gif

P.S sorki za OT
Mlodycompany
wookieb! Mówisz mi, żebym nauczył się podstaw a sam źle podałeś mi rozwiązanie problemu. Chodzi mi o Twoje znajdz::img(). Widzisz jak wstawiłem parent zamiast znajdz zadziałało. Ale cóż. Dzięki za pomoc.
kwiateusz
zeby działało parent to musi dziedziczyć, a czegoś takiego nie masz w przedstawionym kodzie, no i dziedziczenie prt po znajdź to kolejna głupota, ale jak tam chcesz
marcio
@Up chyba zle przeczytales post wookieeb dales chociaz funckje jako statyczna czy nie bo jak nie to co sie dziwisz.

A jak moze ci dzialac parent:: jak to sluzy by sie odwolac to metody z klasy bazowej?

A z tego co ja widze to ty po niczym tam nie dziedziczysz.

P.S Up to mowilem do MlodyCompany tongue.gif
webdice
Cytat(Mlodycompany @ 9.05.2009, 10:46:45 ) *
wookieb! Mówisz mi, żebym nauczył się podstaw a sam źle podałeś mi rozwiązanie problemu. Chodzi mi o Twoje znajdz::img(). Widzisz jak wstawiłem parent zamiast znajdz zadziałało. Ale cóż. Dzięki za pomoc.


Poraz kolejny - naucz się podstaw, a potem pisz że ktoś podał Ci nieprawidłowe rozwiązanie.
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.