【发布时间】:2014-03-27 08:34:43
【问题描述】:
如果我的问题可能太简单,我是 OPP 的新手,请原谅 :) 表格类别、导航等包含多行(类别:三星、苹果等;导航:关于我们、术语等),并且在所有页面(主页、产品等)中都作为菜单
下面是我的旧 php 代码和运行良好的代码
<div id="categories">
<ul>
<?
$mydbcategories = new myDBC();
$resultcategories = $mydbcategories->runQuery("SELECT * FROM `category`");
while ($rowcategories = $mydbcategories->runFetchArray($resultcategories)) {
echo '<li><a href="'.ROOT_URL.$rowcategories[url].'">'.$rowcategories[title].'</a></li>';
}
?>
</ul>
</div>
<div id="navigation">
<ul>
<?
$mydbnavigation = new myDBC();
$resultnavigation = $mydbnavigation->runQuery("SELECT * FROM `navigation`");
while ($rownavigation = $mydbnavigation->runFetchArray($resultnavigation)) { echo '<li><a href="'.ROOT_URL.$rownavigation [url].'">'.$rownavigation [title].'</a></li>';
}
?>
</ul>
</div>
我想实现 OOP PHP 并创建类然后存储在 classes.php 中
<?
class Menu{
var $title;
var $url;
function setMenu($db){
$mydbMenu= new myDBC();
$resultmenu = $mydbMenu->runQuery("SELECT * FROM `$db`");
$resultmenurows = mysqli_num_rows($resultmenu);
while ($rowmenu = $mydbMenu->runFetchArray($resultmenu)){
$this->title = $rowmenu[title];
$this->url = $rowmenu[url];
}
}
function getTitle() { return $this->title;}
function getUrl() { return $this->url;}
}
?>
然后我用下面的新代码编辑我的旧代码;
<div id="categories">
<ul>
<?
$catmenu = new Menu();
while ($catmenu ->setMenu('category')) {
echo '<li><a href="'.ROOT_URL.$catmenu->getUrl().'">'.$catmenu->getTitle().'</a></li>';
}
?>
</ul>
</div>
<div id="navigation">
<ul>
<?
$navmenu = new Menu();
while ($navmenu ->setMenu('category')) {
echo '<li><a href="'.ROOT_URL.$navmenu ->getUrl().'">'.$navmenu ->getTitle().'</a></li>';
}
?>
</ul>
</div>
我测试并出错可能是因为 setMenu 函数中有多行(来自表)。 我怎样才能返回这多行?我应该使用数组吗? 请帮我解决这个问题,任何回复都非常感谢
【问题讨论】:
-
我测试过并出错 - 错误是什么?