Pergunta

Não estou recebendo dados de volta do meu banco de dados como eu estou esperando. Sei que posso obter dados do banco de dados porque tenho outras funções funcionando. Com esta página, o que estou tentando fazer é o seguinte:

Se não houver postback, gostaria que ecoassem "nenhuma categoria selecionada"

Se uma categoria foi escolhida, eu gostaria que ela obtenha esses dados do banco de dados e o mostre na página. Tenho certeza de que posso fazer tudo isso em uma visão, simplesmente não estou fazendo algo certo. Alguém pode ajudar por favor?

O erro que estou recebendo é:

Um erro de PHP foi encontrado gravidade: Mensagem de aviso: Tentando obter a propriedade do nome do objeto não-objeto: Views/Category_View.php Número da linha: 25

Quanto ao esquema de DB:

tabela: 'o negócio' ID, BusName, Bushowner, Busaddress, Busyt, Busstate, Buszip, Busphone, WebAddress, Categoria, destaque, UserID.

tabela: 'categoria' id, catname, catdesc.

tabela: 'Fotos' ID, fotoname, fotolocation, Busid, UserID.

tabela: 'Especiais' ID, SpecName, Specdesc, Busid, UserID.

tabela: 'Vídeos' ID, título, link, Busid.

Pastebin: http://pastebin.com/aqqcvnab

Foi útil?

Solução

Não tenho certeza do que exatamente está ou não está funcionando para você. Eu tentei isso localmente e está ecoando "nenhuma categoria selecionada" corretamente.

Visão:

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

Se você pode ser um pouco mais específico (e publicar um esquema de banco de dados), vou me esforçar mais.


OK. O problema está na sua categoria_view:

<?php if(count($businessList) > 0) : foreach ($businessList as $svrow): ?>

precisa ser:

<?php if(count($businessList) > 0) : foreach ($businessList->result() as $svrow): ?>

sem o ->result() Identificador Ele não atribui o objeto ao SVROW. Então, com esta linha, no lugar echo $svrow->busname; ecoarão o nome comercial conforme o esperado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top