我没有像我期望的那样从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; 将按预期回应业务名称。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top