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

Acceder a categoria y que liste

Estas en el tema de Acceder a categoria y que liste en el foro de CodeIgniter en Foros del Web. Buenas Tengo ya hecha mi home page en codeigniter listando los articulos de la db, ahora el tema es al ingresar a ver alguno o ...
  #1 (permalink)  
Antiguo 25/04/2011, 17:07
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
Acceder a categoria y que liste

Buenas

Tengo ya hecha mi home page en codeigniter listando los articulos de la db, ahora el tema es al ingresar a ver alguno o a una categoria, tengo creado el modelo articulos con lo siguiente:

Controlador articulos:
Código PHP:
function index($id){
                
//cargo el helper de url, con funciones para trabajo con URL del sitio
                    
$this->load->helper('url');
                    
//cargo el modelo de artículos
                    
$this->load->model('Articulos_model');
                    
//pido al modelo el artículo que se desea ver
                    
$arrayArticulo $this->Articulos_model->dame_articulo($id);
                    
$datos_articulos = array('articulos' => $arrayrticulo);
                    
//compruebo si he recibido un artículo
                    
if (!$arrayArticulo){
                    
//no he recibido ningún artículo
                    //voy a lanzar un error 404 de página no encontrada
                    
show_404();
                }else
                    {
                
//he encontrado el artículo
                //muestro la vista de la página de mostrar un artículo pasando los datos del array del artículo
                
$this->load->view('muestra_articulos'$datos_articulos);
                }
        } 
Luego el modelo:

Código PHP:
function dame_articulo($id){
            
$ssql "myquery
                     WHERE id=" 
$id;
            
$rs mysql_query($ssql);
            if (
mysql_numrows($rs)==0){
                 return 
false;
        }else
            {
        return 
mysql_fetch_array($rs);
        }
        } 
Y luego claro tengo la vista llamada muestra_articulos.php dentro de views, pero al querer ingresar a un articulos por la url:

site//index.php/muestra_articulos/585

me tira 404 pagina no encontrada, porque?, que estoy llamando mal?
  #2 (permalink)  
Antiguo 26/04/2011, 11:16
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: Acceder a categoria y que liste

yo probaria haciendo un print_r($arrayArticulo) después que llamas al método del modelo para ver que te devuelve.
Salu2
  #3 (permalink)  
Antiguo 26/04/2011, 12:34
 
Fecha de Ingreso: octubre-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Acceder a categoria y que liste

Perdon habia visto algo mal , creo que debes ver si te llega la id y que te esta devolviendo $arrayArticulo tratando de preguntar de otra forma con el
if , quizas un count para ver si devuelve algo.Lo otro seria que el fetch te lo este devolviendo con ARRAY [0] subindice , no recuerdo muy bien como
funcionaba eso .. pero como dijeron arriba un print te puede dar la solucion

Última edición por ditin; 26/04/2011 a las 12:44
  #4 (permalink)  
Antiguo 27/04/2011, 12:18
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: Acceder a categoria y que liste

Me dice boolean false al hacer print al arrayarticulos
  #5 (permalink)  
Antiguo 27/04/2011, 19:19
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: Acceder a categoria y que liste

eso quiere decir que no devuelve nada, ahora deberías intentar dos cosas:

1- hacer un print_r de la query para ver si esta bien armada y si toma correctamente el parametro que le envias.

Si el punto 1 te devuelve algo asi:
myquery WHERE id=

quiere decir que no le estas pasando nada como parametro así que tienes que hacer el punto 2

2- has un print_r($id) en el index, si no te devuelve nada es porque no estas pasando nada como parametro, por lo tanto deberías probar con algo así:

$arrayArticulo = $this->Articulos_model->dame_articulo($_REQUEST['nombre_del_paremtro_que_mandas_por_get_o_por_post]);

salu2
  #6 (permalink)  
Antiguo 28/04/2011, 17:23
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: Acceder a categoria y que liste

Bien, ya logre obtener los datos pasando dos variables por array, asi

$datos_articulos = array('articulos' => $arrayArticulos,
'otra_variable' => $otra_variable);

Ahora tengo un problema, deseo listar la cantidad de posts que tiene el autor de dicho articulo, es decir quiero mostrar por ej Sender envio 12 articulos

Lo que hago en el model es:

Código PHP:
 function dame_articulo($id){
            
$sql "miselect
                WHERE id =  '$id'"
;
        
$query $this->db->query($sql);
        
$fav $query->result_array();

        foreach(
$query->result() AS $row):
            
$rows $row;
            return 
$rows;
        endforeach;
        }

        function 
dame_nro_posts() {

    
$numero_de_posts mysql_num_rows(mysql_query("SELECT misdatos WHERE autor = '$this->autor'"));
        return 
$numero_de_posts;
        } 
El problema aca es que a autor no lo tengo, solo dentro del foreach con el $rows->autor lo veo en la view pero aca no se como acceder para meterlo en el WHERE, alguna idea?
  #7 (permalink)  
Antiguo 29/04/2011, 06:11
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: Acceder a categoria y que liste

y no te conviene hacer todo en una sola consulta algo asi:
Código MySQL:
Ver original
  1. SELECT COUNT(id) AS total, * FROM tabla WHERE id = '$id'

o la otra alternativa es que en el controlador llames a la función dame_nro_posts y pasarle el id como parametro.
  #8 (permalink)  
Antiguo 30/04/2011, 21:49
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: Acceder a categoria y que liste

Bien, eso queda mas adelante ya que primero necesito hacer andar la libreria de usuarios, ya tengo cargada la libreria o eso creo con el

$this->load->library('user');

en el controlador

y tengo tall cual indica aca el controller user

http://codeigniter.com/wiki/Users_Library/

Pero, obtengo esto:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: User::$users

Filename: controllers/user.php

Line Number: 84

Fatal error: Call to a member function isLoggedIn() on a non-object in

Etiquetas: frameworks-y-php-orientado-a-objetos
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 10:03.