Hej
Jeg har nu så småt fået styr på diverse problemer med funktioner, men for at løse største problem, implementerede jeg et to-dimensionelt array til at gemme det der blev hentet, og så køre det igennem et loop, hvor jeg tjekker om modenabled er sat til 0. Er den sat til 1, så skal den køre include og så værdien af modpath.
- function modules($modcat, $mysqli) {
- if($modstmt=$mysqli->prepare('SELECT `modname`, `modpath`, `modenabled` FROM `modules` WHERE `category`=?')) {
- $modstmt->bind_param('s', $modcat);
- $modarray = array();
- $modstmt->execute();
- $modstmt->bind_result($mod_name, $mod_path, $mod_status);
- while($modstmt->fetch()) {
- $modarray[] = array('modname' => $mod_name, 'modpath' => $mod_path, 'modenabled' => $mod_status);
- }
- $modstmt->close();
- var_dump($modarray);
- $count = 0;
- foreach ($modarray as $modules) {
- echo '<p>'.$modules['modname'][$count].', '.$modules['modpath'][$count].', '.$modules['modenabled'][$count].'</p>';
- if($modules['modneabled'][$count] == 0) {
- echo 'Modulet '.$modules['modname'][$count].' er deaktiveret<br />';
- }
- else {
- include 'modules/'.$modules['modpath'][$count];
- //echo 'Modulet '.$modules['modname'][$count].' er aktiveret';
- }
- $count++;
- var_dump($modules);
- }
-
- }
- else {
- echo 'Moduler ikke hentet '.$mysqli->error;
- }
- }
En dump af mit array giver hurtigt en ledetråd om at der er et problem.
array(2) {
[0]=>
array(3) {
["modname"]=>
string(9) "slideshow"
["modpath"]=>
string(19) "slide/slide.mod.php"
["modenabled"]=>
int(1)
}
[1]=>
array(3) {
["modname"]=>
string(7) "widgets"
["modpath"]=>
string(21) "widget/widget.mod.php"
["modenabled"]=>
int(1)
}
}
Derudover får jeg også en en undefined index på modenabled i mit array, når jeg forsøger at udføre mit foreach-loop. Af en eller anden grund, så får modenabled ingen værdi i mit array. Jeg har under udførsel af mit while-loop, i mit prepared statement, forsøgt at udskrive værdien af $mod_status, som er den variabel der holder værdien af modenabled. Her returneres den korrekte værdi. Så det går galt et eller andet sted mellem at jeg skal bruge værdien og der hvor jeg sætter den.
Dump af arrayet $modules giver følgende:
array(3) {
["modname"]=>
string(9) "slideshow"
["modpath"]=>
string(19) "slide/slide.mod.php"
["modenabled"]=>
int(1)
}
Hvorfor er det lige at det går galt?