Toon posts:

[PHP] Class in een Class?

Pagina: 1
Acties:
  • 52 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben voor mezelf een webwinkeltje aan het programmeren. Dat doe ik in objecten, zo heb ik er een voor het wagentje Cart(); en een database abstractie layer Database();. Nu zou ik graag vanuit het Cart object een call willen maken naar het database object. Kan dat? Ik heb het zo geprobeerd, maar dat werkt niet.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
require_once "lib.db.php";
$db = new Database;
$db->connect();

class Cart
{
    // Set Table Name
    var $cart_table = "shopping";
    
    function check_item($session, $product)
    { 
        $query = "SELECT * FROM $this->cart_table WHERE session='$session' AND product='$product' "; 

// Hier probeer ik het dus.
        $result = $db->query($query); 
    }

  • Akerboom
  • Registratie: Juni 2001
  • Laatst online: 29-07 13:20

Akerboom

Codito, ergo sum

$db aanmaken binnen de klasse Cart

Verwijderd

Binnen de functie : $db = new Database;

Binnen de Klasse : var $db = new Database

Buiten de klasse: Werkt niet

  • maartenba
  • Registratie: November 2001
  • Laatst online: 18-08 11:39
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
require_once "lib.db.php"; 
$db = new Database; 
$db->connect(); 

class Cart { 
  var $mDb;

  // Constructor
  function Cart(&$db) {
    $this->mDb = $db;
  }

  // ... code ...
}


Als je nu $blaat = new Cart($db); doet om je klasse op te roepen, dan zal je query wel werken...

Verwijderd

Topicstarter
Zo krijg ik nog steeds een parse error op var $db = new Database;

En moet ik verder ook werken met $this->db->query(); ipf $db->query(); ?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
// Initialize Database
require_once "lib.db.php";

class Cart
{
    // Initialize Database
    var $db = new Database;
    $db->connect();
    
    // Set Table Name
    var $cart_table = "shopping";
    
    function check_item($session, $product)
    { 
        $query = "SELECT * FROM $this->cart_table WHERE session='$session' AND product='$product' "; 
        $result = mysql_query($query); 
    }

Verwijderd

Je moet eerst je class variabelen declareren, en dan ze pas initialiseren in je constructor (die bij jou trouwens ook al ontbreekt zie ik) ;)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Bekijk de documentatie over het keyword global en je begrijpt waarom het niet werkt. Dit is echt manual werk hoor

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.