Variable in functie gebruiken
de mysql class door te geven aan de menu class, maar helaas zonder succes. Nu ben ik dus een stapje terug gegaan naar wat meer basis werk (maar toch met classes) maar zonder effect...
Als iemand een oplossing heeft om toch die mysql class in de menu class te krijgen, of een oplossing heeft voor de melding Call to a member function on a non-object die ik met de bovenstaande functie krijg, dan hoor ik dat graag van jullie. indien je de code wilt zien van de mysql class, dan zeg het maar en ik post hem er bij...
In het onderstaande stukje code heb ik de variabele Mysql waarin de class zit van een mysql hulp gedeelte. Nu ben ik in de onderstaande code aan het proberen om deze variabele te gebruiken in een funcite (in het zelfde bestand) maar dit helaas zonder succes. Ik heb al geprobeerd om die functie in een class te zetten en met Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
define( 'ROOT_PATH', dirname( __FILE__ ) ."/" );
require_once ROOT_PATH . "config.php";
require_once ROOT_PATH . "classes/class.".$INFO['sql_driver'].".php";
$mysql = new DB($INFO['sql_user'],$INFO['sql_pass'],$INFO['sql_database']);
$mysql->connect();
include ROOT_PATH . "includes/header.php";
function generate_menu()
{
$mysql->query("SELECT * FROM menu ORDER BY sorting ASC");
$menu = "";
$menu .= "<table class='menu'>";
while($mysql->fetchRow())
{
$menu .= "<tr><td>";
$menu .= "<a href='".$mysql->record["url"]."'>".$mysql->record["naam"]."</a>";
$menu .= "</td></tr>";
}
$menu .= "</table>";
return $menu;
}
echo generate_menu();
include ROOT_PATH . "includes/footer.php";
$mysql->disconnect();
?>
define( 'ROOT_PATH', dirname( __FILE__ ) ."/" );
require_once ROOT_PATH . "config.php";
require_once ROOT_PATH . "classes/class.".$INFO['sql_driver'].".php";
$mysql = new DB($INFO['sql_user'],$INFO['sql_pass'],$INFO['sql_database']);
$mysql->connect();
include ROOT_PATH . "includes/header.php";
function generate_menu()
{
$mysql->query("SELECT * FROM menu ORDER BY sorting ASC");
$menu = "";
$menu .= "<table class='menu'>";
while($mysql->fetchRow())
{
$menu .= "<tr><td>";
$menu .= "<a href='".$mysql->record["url"]."'>".$mysql->record["naam"]."</a>";
$menu .= "</td></tr>";
}
$menu .= "</table>";
return $menu;
}
echo generate_menu();
include ROOT_PATH . "includes/footer.php";
$mysql->disconnect();
?>
Als iemand een oplossing heeft om toch die mysql class in de menu class te krijgen, of een oplossing heeft voor de melding Call to a member function on a non-object die ik met de bovenstaande functie krijg, dan hoor ik dat graag van jullie. indien je de code wilt zien van de mysql class, dan zeg het maar en ik post hem er bij...
register waar ik al mijn global objecten en variabelen met een naam in gooi.
Nu is die link die ik gaf een beetje vaag naar mijn mening, en gaat hij meer over unittestcase dan over het uiteindelijke register.
Als je beschikt over PHP5 kan je als voorbeeld mijn eigen setje functies nemen (Hier zit het in, vanaf regel 79 tot 107)
Wat ook kan is gewoon gebruik maken van 'global', dus
Dat is wat simpeler :)
Misschien dat het een beetje te grote stap is, maar ik gebruik zelf altijd een zogenaamd Nu is die link die ik gaf een beetje vaag naar mijn mening, en gaat hij meer over unittestcase dan over het uiteindelijke register.
Als je beschikt over PHP5 kan je als voorbeeld mijn eigen setje functies nemen (Hier zit het in, vanaf regel 79 tot 107)
Wat ook kan is gewoon gebruik maken van 'global', dus
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
function generate_menu()
{
global $mysql;
$mysql->query("SELECT * FROM menu ORDER BY sorting ASC");
?>
function generate_menu()
{
global $mysql;
$mysql->query("SELECT * FROM menu ORDER BY sorting ASC");
?>
Dat is wat simpeler :)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
Thx. dat was dus precies wat ik zocht :D