Проблема обратной передачи? Не получать данные из БД - PullRequest
0 голосов
/ 30 марта 2010

Я не получаю данные из моей БД, как я ожидал. Я знаю, что могу получить данные из БД, потому что у меня работают другие функции. На этой странице я пытаюсь сделать следующее:

Если нет обратной передачи, то я бы хотел, чтобы она повторила "Категория не выбрана"

Если категория была выбрана, то я хотел бы, чтобы она получала эти данные из БД и показывала их на странице. Я уверен, что я могу сделать все это в одном представлении, я просто не делаю что-то правильно. Может кто-нибудь помочь, пожалуйста?

ошибка, которую я получаю:

Обнаружена ошибка PHP. Серьезность: Уведомление Сообщение: Попытка получить свойство не-объекта Имя файла: views / category_view.php Номер строки: 25

как для схемы БД:

таблица: 'business' id, имя шины, busowner, busaddress, busicyt, busstate, buszip, busphone, веб-адрес, категория, избранные, идентификатор пользователя.

таблица: 'категория' id, catname, catdesc.

таблица: 'photos' id, имя пользователя, фотолокация, busid, идентификатор пользователя.

таблица: «специальные» id, specname, specdesc, busid, userid.

таблица: 'videos' id, заголовок, ссылка, busid.

Pastebin: http://pastebin.com/AQqcvnAb

1 Ответ

1 голос
/ 30 марта 2010

Совершенно не уверен, что именно для вас работает или не работает. Я попытался это локально, и он правильно отображает "не выбранная категория".

Вид:

<?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>

Если вы можете быть более конкретным (и опубликовать схему БД), я постараюсь больше


OK. Проблема в вашем 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; будет отображать название компании, как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...