Pregunta

No estoy recuperando los datos de mi DB como estoy esperando. Sé que puedo obtener datos del DB porque tengo otras funciones funcionando. Con esta página, lo que estoy tratando de hacer es lo siguiente:

Si no hay devolución de devolución, me gustaría que haga eco "No hay categoría seleccionada"

Si se ha elegido una categoría, entonces me gustaría que obtenga esos datos del DB y lo muestre en la página. Estoy seguro de que puedo hacer todo esto en una visión, simplemente no estoy haciendo algo bien. ¿Puede alguien ayudar, por favor?

El error que recibo es:

Se encontró un error de PHP severidad: Mensaje de notificación: Intenta obtener la propiedad del nombre de archivo no objeto: Vistas/category_view.php Número de línea: 25

En cuanto al esquema de DB:

mesa: 'negocio' ID, BUSNAME, BUSHOWNER, Busaddress, Busicyt, Busstate, Buszip, BousPhone, WebAddress, Categoría, destacado, INSERMED.

mesa: 'categoría' ID, Catname, Catdesc.

mesa: 'Fotos' ID, nombre de fotón, fotolocalización, busid, usado de usuario.

mesa: 'Especiales' ID, Specname, SpecDesc, Busid, UserId.

mesa: 'Videos' ID, título, enlace, busid.

Pastebin: http://pastebin.com/aqqcvnab

¿Fue útil?

Solución

No estoy seguro de qué es exactamente lo que funciona o no. Intenté esto localmente y está haciendo eco "sin categoría seleccionada" correctamente.

Vista:

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

Si puede ser un poco más específico (y publicar un esquema de DB), me esforzaré más.


ESTÁ BIEN. El problema está en su categoría_view:

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

necesita ser:

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

sin el ->result() Identificador No asigna el objeto a SVROW. Entonces con esta línea, en su lugar echo $svrow->busname; Hará eco del nombre comercial como se esperaba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top