题
我没有像我期望的那样从DB中获取数据。我知道我可以从数据库中获取数据,因为我还有其他功能。在此页面上,我要做的就是以下内容:
如果没有后背,我希望它回应“未选择类别”
如果选择了类别,那么我希望它从数据库中获取数据并在页面上显示。我敢肯定,我可以在一个视图中做到这一点,我只是做不到。有人可以帮忙吗?
我遇到的错误是:
遇到了严重性的PHP错误:通知消息:尝试获取非对象文件名的属性:views/category_view.php行号:25
至于DB模式:
桌子: '商业' ID,BUSNAME,BUSOWNER,BUSADDRESS,BUSCYT,BUSSTATE,BUSZIP,BUSPONE,WEEBADDRESS,类别,特色,USERID。
桌子: '类别' id,catname,catdesc。
桌子: '相片' ID,Photoname,PhotoLocation,BusID,用户ID。
桌子: “特价” id,specname,specdesc,busID,userId。
桌子: “视频” ID,标题,链接,BusID。
Pastebin: http://pastebin.com/aqqcvnab
解决方案
完全不确定到底是什么或不适合您。我在本地尝试了此操作,并且正在正确地回荡“未选择类别”。
看法:
<?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>
如果您可以更具体(并发布DB模式),我会更加努力。
好的。问题在您的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;
将按预期回应业务名称。
不隶属于 StackOverflow