Fatal Error bij classes in werking zetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen Langenberg

Jeroen Langenberg

20/10/2006 15:50:00
Quote Anchor link
Beste mensen,

Wanneer ik mijn classes include en dan met new probeer te verwerken enz ... dat lukt nog, maar zodra rechten.class.php gebruik wil gaan maken van de MySQL class gaat het fout...

De error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Cannot redeclare class mysqldb in C:\server\www\blogness2\includes\mysql.class.php on line 2

Config.inc.php code:

http://www.plaatscode.be/2920/

Mysql.class.php code:

http://www.plaatscode.be/2921/

Rechten.class.php code:

http://www.plaatscode.be/2922/

Alle classes zijn gewoon zelf geschreven enz ... alleen ik ben altijd al slecht geweest in het oplossen van kan class niet vinden enz...

Iig alvast bedankt,

jlkiller
 
PHP hulp

PHP hulp

27/11/2024 06:06:33
 
Remco van Arkelen

Remco van Arkelen

20/10/2006 16:01:00
Quote Anchor link
Waarom een include("includes/mysql.class.php"); in je rechten.class.php? Die veroorzaakt waarschijnlijk die fout. Doorgaans heb je geen includes in class-files, alleen in de bovenliggende (bij jou de config).
 
Jeroen Langenberg

Jeroen Langenberg

20/10/2006 16:06:00
Quote Anchor link
Bedankt remco! Die hele include zooi heb ik weg gehaald, echter heb ik nu nog een fout ...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Call to a member function Query() on a non-object in C:\server\www\blogness2\includes\rechten.class.php on line 38


:$ Enig idee hoe ik deze op kan lossen?

Hij roept dus in rechten.php toegang op ... dan vind ie een query via de MYSQL class, en dan doet ie het niet meer ...
Gewijzigd op 01/01/1970 01:00:00 door Jeroen Langenberg
 
Remco van Arkelen

Remco van Arkelen

20/10/2006 16:41:00
Quote Anchor link
De variabele $Sql is nergens bekend binnen je class....je zult in de constructor van je class bijvoorbeeld zoiets kunnen doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
class Rechten
{
  private $Sql;  
 
  public function __construct( $db )
  {

    $this->Sql = $db;
  }


  public function IetsMetData( )
  {

    $this->Sql->Query( "SELECT bar FROM foo");
  }
}



/* Gebruik */
$oSQL = new MySQL( );
$oRechten = new Rechten( $oSQL );
?>


Zo maak je beter gebruik van je class, ze werken dan écht los van elkaar.
 
Joren de Wit

Joren de Wit

20/10/2006 16:43:00
Quote Anchor link
De error zegt dat $Sql geen object is. Doordat je die include van de mysql klasse uit rechten.class.php hebt gehaald, is $Sql geen geldige instantie meer van die mysql klasse. Kortom, een methode uit die klasse gebruiken is dan ook niet mogelijk.

ps. Ook een oplossing zou zijn om de klasse mysql.class.php te extenden met rechten.class.php. Op die manier heb je direct toegang tot de methodes uit de mysql klasse zonder dat je daar een instantie van hoeft aan te maken.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Remco van Arkelen

Remco van Arkelen

20/10/2006 17:02:00
Quote Anchor link
Blanche schreef op 20.10.2006 16:43:
ps. Ook een oplossing zou zijn om de klasse mysql.class.php te extenden met rechten.class.php. Op die manier heb je direct toegang tot de methodes uit de mysql klasse zonder dat je daar een instantie van hoeft aan te maken.


En dat is nu nét niet wat je wilt. Dit is alleen toegestaan als je kunt zeggen:

Class 1 "is een" class 2.

Rechten is een MySQL ? Nee...niet toegestaan dus :)
Ze hebben niets met elkaar te maken, lees mijn vorige post nog eens door.
 
Joren de Wit

Joren de Wit

20/10/2006 17:44:00
Quote Anchor link
Jep, daar heb je inderdaad een goed punt. Tnx ;)
 
Jeroen Langenberg

Jeroen Langenberg

20/10/2006 19:48:00
Quote Anchor link
Oke, bedankt jullie, het is opgelost :D
 
Majid Ahddin

Majid Ahddin

20/10/2006 19:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$Query_Parsetime
= substr($Query_Parsetime_stop - $Query_Parsetime_start, 0, 7);

?>


lol, zie www.php.net/number_format
Gewijzigd op 01/01/1970 01:00:00 door Majid Ahddin
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.