Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem przy dodawaniu produktu do koszyka
Forum PHP.pl > Forum > Przedszkole
keresh
Oto Klasa:

Kod
<?php
class Koszyk
{
    var $zawartosc;

    function dodaj($sub,$ilosc)
    {
        $this->zawartosc[$sub]+=$ilosc;
    }

    function usun($sub,$ilosc)
    {
        if ($this->zawartosc[$sub]>$ilosc)
             $this->zawartosc[$sub]-=$ilosc;
        else
            unset($this->zawartosc[$sub]);
    }

    function zmien($sub,$ilosc)
    {
        $this->zawartosc[$sub] =$ilosc;
     }

    function stan()
     {
         return $this->zawartosc;
     }
}
class NazwanyKoszyk extends Koszyk
{
 var $wlasciciel;
 function ustaw_wlasciciela($nazwa)
 {
     $this->wlasciciel=$nazwa;
 }
}
?>




a oto skrypt obsługujący klasę:

Kod
session_start();
     include("koszyk.inc");
     $select=mysql_query("select nazwa,cena,foto,id,opis from produkty where id='$sub'") or die(mysql_error());
     $prod=mysql_fetch_row($select);
     if(!isset($nowykoszyk) || !is_object($nowykoszyk))
     {
         $nowykoszyk = new NazwanyKoszyk();
         $nowykoszyk->ustaw_wlasciciela($_SESSION['prawid_uzyt']);
     }
     $nowykoszyk->dodaj($prod[3],$ilosc);




niestety podczas drugiego dodania do koszyka produktu wyskakuje błąd: Fatal error: Call to a member function dodaj() on a non-object odnszący się do linijki 82 czyli:
Kod
$nowykoszyk->ustaw_wlasciciela($_SESSION['prawid_uzyt']);


proszę o pomoc smile.gif  
wookieb
Kod
$nowykoszyk->dodaj($prod[3],$ilosc);

Tzn ze $nowykoszyk nie jest obiektem. Dopilnuj, żeby był.
a dopilnujesz poprawiajac literówke
Kod
$nowykoszyk = new NazawnyKoszyk();

na
Kod
$nowykoszyk = new NazwanyKoszyk();
keresh
Zmieniłem literówke lecz niestety nadal podczas drugiej próby dodania produktu do koszyka wyskakuje ten sam błąd sad.gif
wookieb
Wiec dopilnuj by $nowyKoszyk był obiektem.
Kod
    if(!isset($nowykoszyk) || !is_object($nowykoszyk))
keresh
Niestety nadal to samo sad.gif najdziwniejsze że za pierwszym razem wszystko jest dobrze dopiero przy próbie drugiego dodania nie działa
webdice
Proszę o zmianę tytułu tematu na taki który opisuje problem oraz dodanie bbcode. W innym wypadku temat zostanie zamknięty.
barthpl
To może taka zamiana:
  1. <?php
  2. if( !is_a($nowykoszyk, 'NazwanyKoszyk) ) {
  3. // utworzenie nowego koszyka;
  4. $nowykoszyk = new NazwanyKoszyk();
  5. $nowykoszyk->ustaw_wlasciciela( $_SESSION['prawid_uzyt] );
  6. }
  7. $nowykoszyk->dodaj($prod[3],$ilosc);
  8. ?>


BTW: Przy pisaniu obiektowym polecam się przesiąść na PHP5. Ma kilka fajnych funkcji jak na przykład: __construct(), __get(), __set(), etc...
keresh
Cytat(barthpl @ 27.08.2008, 16:35:35 ) *
To może taka zamiana:
  1. <?php
  2. if( !is_a($nowykoszyk, 'NazwanyKoszyk) ) {
  3. // utworzenie nowego koszyka;
  4. $nowykoszyk = new NazwanyKoszyk();
  5. $nowykoszyk->ustaw_wlasciciela( $_SESSION['prawid_uzyt] );
  6. }
  7. $nowykoszyk->dodaj($prod[3],$ilosc);
  8. ?>


BTW: Przy pisaniu obiektowym polecam się przesiąść na PHP5. Ma kilka fajnych funkcji jak na przykład: __construct(), __get(), __set(), etc...


Dziękuje smile.gif Pomogło
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.