|
Categorieën >
PHP & SQL
[SQL] Query fout.
|
|
|
offline
|
MySQL 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
<?php
<?php
require_once('database.php');
class Menu
{
private $_db;
function __construct()
{
$_db = new Database();
$result = mysqli_query($_db->link, 'SELECT id, name FROM menu');
echo '<ul id="nav">';
while($menu = mysqli_fetch_array($result))
{
echo '<li class="menu_knop"><a href="">' . $menu['name'] . '</a>';
node($menu['id']);
echo '</li>';
}
echo '</ul>';
}
function node($nMenuID)
{
$result = mysqli_query($_db->link, 'SELECT name FROM menu_down WHERE child = ' . $nMenuID);
if(null != result)
{
echo '<ul>';
while($menu = mysqli_fetch_array($result))
{
echo '<li><a href="">' . $menu['name'] . '</a></li>';
}
echo '</ul>';
}
}
}
new Menu();
?>
<?php <?php require_once('database.php'); class Menu { private $_db; function __construct() { $_db = new Database(); $result = mysqli_query($_db->link, 'SELECT id, name FROM menu'); while($menu = mysqli_fetch_array($result)) { echo '<li class="menu_knop"><a href="">' . $menu['name'] . '</a>'; node($menu['id']); } } function node($nMenuID) { $result = mysqli_query($_db->link, 'SELECT name FROM menu_down WHERE child = ' . $nMenuID); if(null != result) { while($menu = mysqli_fetch_array($result)) { echo '<li><a href="">' . $menu['name'] . '</a></li>'; } } } } new Menu(); ?>
|
7 antwoorden
YesItIsChris – 19/03/2010 13:47 (Laatst gewijzigd op 19/03/2010 13:48)
|
|
offline
|
Nieuw lid
|
Gebruik $this->functionnaam(); omdat de functie in de klasse zelf staat en niet erbuiten.
|
|
|
|
offline
|
PHP gevorderde
|
er zaten nog enkele foutjes in de code
regel 20:
$this->node($menu['id']);
regel 31:
if(null != $result)
|
|
|
|
offline
|
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
|
MySQL interesse
|
Hmm, kom iets verder nu:
Lijn 28:
$result = mysqli_query($_db->link, 'SELECT name FROM menu_down WHERE child = ' . $nMenuID);
$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
|
PHP interesse
|
Elke variabele die je definieert in je class moet je halen uit $this, dus $this->_db->link
|
|
|
|
offline
|

PHP ver gevorderde
|
Losstaand van wat je vraagt..
echo in een klasse is *zeer* slecht,
geen echo in een klasse gebruiken.
|
|
|
|
offline
|
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....
<?php
require_once('database.php');
class Menu
{
private $_db;
function __construct()
{
$_db = new Database();
$result = mysqli_query($_db->link, 'SELECT id, name FROM menu');
echo '<ul id="nav">';
while($menu = mysqli_fetch_array($result))
{
echo '<li class="menu_knop"><a href="">' . $menu['name'] . '</a>';
$this->node($menu['id']);
echo '</li>';
}
echo '</ul>';
}
function node($nMenuID)
{
$result = mysqli_query($this->_db->link, 'SELECT name FROM menu_down WHERE child = ' . $nMenuID);
if(null != $result)
{
echo '<ul>';
while($menu = mysqli_fetch_array($result))
{
echo '<li><a href="">' . $menu['name'] . '</a></li>';
}
echo '</ul>';
}
}
}
new Menu();
?>
<?php require_once('database.php'); class Menu { private $_db; function __construct() { $_db = new Database(); $result = mysqli_query($_db->link, 'SELECT id, name FROM menu'); while($menu = mysqli_fetch_array($result)) { echo '<li class="menu_knop"><a href="">' . $menu['name'] . '</a>'; $this->node($menu['id']); } } function node($nMenuID) { $result = mysqli_query($this->_db->link, 'SELECT name FROM menu_down WHERE child = ' . $nMenuID); if(null != $result) { while($menu = mysqli_fetch_array($result)) { echo '<li><a href="">' . $menu['name'] . '</a></li>'; } } } } new Menu(); ?>
|
Dit onderwerp is gesloten.
|
|
|