Hej
Jeg er gået igang med at fjerne en masse rod i min kode, og på den måde gøre det mere overskueligt, fordi jeg ender ud med et par funktioner, i stedet for kæmpestore scripts. Dog er jeg stødt ind i et lille problem.
Jeg har lavet en funktion der ser således ud:
- function modules($modname, $mysqli) {
- if($stmt=$mysqli->prepare('SELECT `modname`, `modpath`, `modenabled` FROM `modules` WHERE `category`=?')) {
- $stmt->bind_param('s', $modname);
- $stmt->execute();
- $stmt->bind_result($mod_name, $module, $mod_status);
- while($stmt->fetch()) {
- if($mod_status == 0) {
- echo 'Modulet '.$mod_name.' er lige nu deaktiveret';
- }
- else {
- include 'modules/'.$module;
- }
- }
- $stmt->close();
- }
- else {
- echo 'Moduler ikke hentet '.$mysqli->error;
- }
- }
Den inkluderer filer de steder, hvor der er mere end en post i db der matcher, og så når den har udskrevet den første, så får jeg følgende fejl:
Fatal error: Call to a member function fetch() on a non-object in C:\xampp\htdocs\cms\inc\config.inc.php on line 58
Line 58 er mit while-loop i min funktion.
Jeg har forsøgt at indsætte indholdet af min funktion, direkte i koden hvor den skal bruges, men her udskriver/inkluderer den absolut intet.
Hvis jeg f.eks. udkommenterer mit include i min while, og i stedet beder den om at foretage
- echo $mod_name.'<br />';
så udskriver den navnet på alle poster den henter.
Hvorfor kan jeg ikke få lov at køre en include på den måde jeg gør det her?