我没有像我期待的那样从我的数据库中获取数据。我知道我可以从数据库中获取数据,因为我有其他功能正常工作。有了这个页面,我想要做的是以下内容:
如果没有回发,那么我希望它回应“No Category Selected”
如果选择了某个类别,那么我希望它从数据库中获取该数据并在页面上显示。我相信我可以在一个视图中完成所有这些,我只是没有做正确的事情。有人可以帮忙吗?
我得到的错误是:
遇到PHP错误严重性:通知消息:尝试获取非对象的属性文件名:views / category_view.php行号:25
对于db schema:
表:'business' id,busname,busowner,busaddress,busicyt,busstate,buszip,busphone,webaddress,category,featured,userid。
表格:'类别' id,catname,catdesc。
表:'照片' ID,光子名称,照片定位,busid,用户ID。
表格:'特价' ID,specname,specdesc,busid,userid。
表格:'视频' id,title,link,busid。
Pastebin:http://pastebin.com/AQqcvnAb
答案 0 :(得分:1)
根本不确定究竟是什么或不适合你。我在本地尝试了这个,它正确回应“没有选择类别”。
查看:
<?php
echo form_open('/site/categories');
echo form_fieldset(); ?>
<legend>Choose the Category of Business you are interested in.</legend>
<select name="catSelect">
<?php
foreach ($catList->result() as $row){
echo '<option value='.$row->id.'>'.$row->catname.'</option>';
}
echo form_submit('submit', 'Submit');
echo form_fieldset_close();
echo form_close();
?>
<table id="businessTable" class="tablesorter">
<thead><tr><th>Business Name</th><th>Photos</th><th>Videos</th><th>Specials</th></tr></thead>
<?php
if(count($serviceVendors) > 0){
foreach ($serviceVendors as $row){
echo '<tr><td>'.$row->busname.'</td><td>';
if(isset($row->photoname)){
echo "photoname is set";
}else{
echo "photoname not set";
}
echo '</td><td>';
if(isset($row->title)){
echo "title set";
}else{
echo "title not set";
}
echo '</td><td>';
if(isset($row->specname)){
echo "specname set";
}else{
echo "specname not set";
}
echo '</td></tr>';
}
}else{
echo "no category selected";
}
?>
</table>
如果您可以更具体一点(并发布数据库架构),我会更加努力。
行。问题在于category_view:
<?php if(count($businessList) > 0) : foreach ($businessList as $svrow): ?>
需要:
<?php if(count($businessList) > 0) : foreach ($businessList->result() as $svrow): ?>
没有->result()
标识符,它不会将对象分配给svrow。
因此,使用此行,echo $svrow->busname;
将按预期回显业务名称。