Foros del Web » Programando para Internet » PHP » CodeIgniter »

[SOLUCIONADO] 2 funciones con la misma consulta

Estas en el tema de 2 funciones con la misma consulta en el foro de CodeIgniter en Foros del Web. hace arto sin pasar por aqui, un problema que me surgio con codeigniter. tengo mi consulta MySQL: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original public function ...
  #1 (permalink)  
Antiguo 05/02/2013, 21:52
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 11 meses
Puntos: 26
2 funciones con la misma consulta

hace arto sin pasar por aqui, un problema que me surgio con codeigniter.

tengo mi consulta MySQL:

Código PHP:
Ver original
  1. public function top(){
  2.         $query = $this->db->query("
  3.             SELECT COUNT(vis_ent_id) AS visita, ent_titulo, ent_tipo, ent_img, ent_id, ent_texto
  4.             FROM visitas, entradas
  5.             WHERE ent_id = vis_ent_id
  6.             GROUP BY vis_ent_id
  7.             ORDER BY visita DESC LIMIT 5"
  8.         );
  9.         return $query->result();
  10.     }

donde agrupa mediante el id de la entrada, cuantas visitas a tenido dicha entrada.

tengo mi sidebar:

Código PHP:
Ver original
  1. <?php
  2. $ci->load->model("m_entradas");
  3. $top = $ci->m_entradas->top();
  4. ?>
  5. <aside id="sidebar" role="complementary">
  6.     <h2>top 5 accion</h2>
  7.     <article>
  8.         <ul>
  9.             <?php foreach ($top as $top){
  10.             if($top->ent_tipo == 1){ ?>
  11.             <li>
  12.                 <?php echo anchor(site_url("article/view/".$top->ent_id."/".url_title($top->ent_titulo)),"<img src=".base_url("images/caratulas/thumbails/".$top->ent_img)." title=".$top->ent_titulo." alt=".$top->ent_titulo." />");?>
  13.                 <section>
  14.                     <h3><?php echo anchor(site_url("article/view/".$top->ent_id."/".url_title($top->ent_titulo)),$top->ent_titulo);?></h3>
  15.                     <p><?php echo $ci->libs->truncate($top->ent_texto, 80, ' ', '...'); ?></p>
  16.                 </section>
  17.             </li>
  18.             <?php }} ?>
  19.         </ul>
  20.     </article>
  21.     <h2>top 5 aventuras</h2>
  22.     <article>
  23.        
  24.     </article>
  25.     <h2>Mas Votadas</h2>
  26.     <article>
  27.                    
  28.     </article>
  29. </aside>

como ven en if($top->ent_tipo == 1) limito que me muestre solo los mas visitados de accion. Pero al repetir el foreach y hacer un if($top->ent_tipo == 2) (limite los mas visitados de aventuras) me tira un error:

Código HTML:
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: templates/sidebar.php
Line Number: 24
Se los agradesco si me pudieran aclarar un poco.

PD: Lo llamo desde una vista por el hecho que sidebar.php se incluye infinitas veces en distintas paginas.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #2 (permalink)  
Antiguo 06/02/2013, 09:33
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: 2 funciones con la misma consulta

Creo que foreach ($top as $top) se ejecutará solamente una vez, usa otro nombre de variable como $topDetail.

Luego, revisa el contenido de la variable con var_dump($topDetail); y si no es un objeto del tipo que esperas, tendrás que revisar lo que te devuelve $query->result().
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 06/02/2013, 12:50
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 11 meses
Puntos: 26
Respuesta: 2 funciones con la misma consulta

Cita:
Iniciado por Triby Ver Mensaje
Creo que foreach ($top as $top) se ejecutará solamente una vez, usa otro nombre de variable como $topDetail.

Luego, revisa el contenido de la variable con var_dump($topDetail); y si no es un objeto del tipo que esperas, tendrás que revisar lo que te devuelve $query->result().
Gracias amigo, me funciono.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.

Etiquetas: funciones, mysql, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.