login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[SQL] Query fout.

Offline Chilion - 19/03/2010 13:41
Avatar van ChilionMySQL interesse Ik wil een soort treeview genereren waarbij de parents in Foutmelding:
Citaat:
Fatal error: Call to undefined function node() in /home/chilion/domains/chilion.nl/public_html/marc/inc/menu.php on line 19


  1. <?php
  2. <?php
  3.  
  4. require_once('database.php');
  5.  
  6. class Menu
  7. {
  8. private $_db;
  9.  
  10. function __construct()
  11. {
  12. $_db = new Database();
  13. $result = mysqli_query($_db->link, 'SELECT id, name FROM menu');
  14.  
  15. echo '<ul id="nav">';
  16.  
  17. while($menu = mysqli_fetch_array($result))
  18. {
  19. echo '<li class="menu_knop"><a href="">' . $menu['name'] . '</a>';
  20. node($menu['id']);
  21. echo '</li>';
  22. }
  23.  
  24. echo '</ul>';
  25. }
  26.  
  27. function node($nMenuID)
  28. {
  29. $result = mysqli_query($_db->link, 'SELECT name FROM menu_down WHERE child = ' . $nMenuID);
  30.  
  31. if(null != result)
  32. {
  33. echo '<ul>';
  34. while($menu = mysqli_fetch_array($result))
  35. {
  36. echo '<li><a href="">' . $menu['name'] . '</a></li>';
  37. }
  38. echo '</ul>';
  39. }
  40. }
  41. }
  42.  
  43. new Menu();
  44.  
  45. ?>



7 antwoorden

Gesponsorde links
Offline YesItIsChris - 19/03/2010 13:47 (laatste wijziging 19/03/2010 13:48)
Avatar van YesItIsChris Nieuw lid Gebruik $this->functionnaam(); omdat de functie in de klasse zelf staat en niet erbuiten.
Offline lemoinet - 19/03/2010 13:48
Avatar van lemoinet PHP gevorderde er zaten nog enkele foutjes in de code

regel 20:

$this->node($menu['id']);

regel 31:

if(null != $result)
Offline Wave6 - 19/03/2010 14:08
Avatar van Wave6 PHP beginner Oke heel ergmooi...

Maar hoe wil je nu bijvoorbeeld gaan aangeven (in je view) welke CSS class je gaat gebruiken op welk element? 
Offline Chilion - 19/03/2010 19:16
Avatar van Chilion MySQL interesse Hmm, kom iets verder nu:

Lijn 28:
  1. $result = mysqli_query($_db->link, 'SELECT name FROM menu_down WHERE child = ' . $nMenuID);


Citaat:
mysqli_query() expects parameter 1 to be mysqli, null given in /home/chilion/domains/chilion.nl/public_html/marc/inc/menu.php on line 28
Offline TotempaaltJ - 19/03/2010 22:48
Avatar van TotempaaltJ PHP interesse Elke variabele die je definieert in je class moet je halen uit $this, dus $this->_db->link 
Offline ArieMedia - 20/03/2010 03:40
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Losstaand van wat je vraagt..

echo in een klasse is *zeer* slecht,

geen echo in een klasse gebruiken.
Offline Chilion - 22/03/2010 09:58
Avatar van Chilion MySQL interesse
TotempaaltJ schreef:
Elke variabele die je definieert in je class moet je halen uit $this, dus $this->_db->link 


Waarom hoeft dat op lijn 12 niet dan?

Daarnaast, dit is de code nu, en ik houdt dezelfde foutmelding, ook met jou toevoeging....
  1. <?php
  2.  
  3. require_once('database.php');
  4.  
  5. class Menu
  6. {
  7. private $_db;
  8.  
  9. function __construct()
  10. {
  11. $_db = new Database();
  12. $result = mysqli_query($_db->link, 'SELECT id, name FROM menu');
  13.  
  14. echo '<ul id="nav">';
  15.  
  16. while($menu = mysqli_fetch_array($result))
  17. {
  18. echo '<li class="menu_knop"><a href="">' . $menu['name'] . '</a>';
  19. $this->node($menu['id']);
  20. echo '</li>';
  21. }
  22.  
  23. echo '</ul>';
  24. }
  25.  
  26. function node($nMenuID)
  27. {
  28. $result = mysqli_query($this->_db->link, 'SELECT name FROM menu_down WHERE child = ' . $nMenuID);
  29.  
  30. if(null != $result)
  31. {
  32. echo '<ul>';
  33. while($menu = mysqli_fetch_array($result))
  34. {
  35. echo '<li><a href="">' . $menu['name'] . '</a></li>';
  36. }
  37. echo '</ul>';
  38. }
  39. }
  40. }
  41.  
  42. new Menu();
  43.  
  44. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s