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

Problema consulta get

Estas en el tema de Problema consulta get en el foro de CodeIgniter en Foros del Web. Hola : Mi problema es el siguiente: A Database Error Occurred Error Number: 1054 Unknown column 'id_cart' in 'where clause' SELECT `delivery_price` FROM (`delivery_price_table`) WHERE ...
  #1 (permalink)  
Antiguo 06/05/2011, 17:05
 
Fecha de Ingreso: enero-2011
Mensajes: 74
Antigüedad: 13 años, 3 meses
Puntos: 4
Problema consulta get

Hola :
Mi problema es el siguiente:

A Database Error Occurred

Error Number: 1054

Unknown column 'id_cart' in 'where clause'

SELECT `delivery_price` FROM (`delivery_price_table`) WHERE `id_cart` = '3'

Filename: C:\wamp\www\GreenwiseVitamins_proyect\system\datab ase\DB_driver.php

Line Number: 330

el codigo de mi modelo es :

public function get_delivery_price() {
$this->db->select('delivery_price')->from('delivery_price_table');
$query = $this->db->get();
return $query->row()->delivery_price;
}

y el de mi controladora es:

public function cart() {
if ($this->session->userdata('logged_in') == true) {
$param['cart_content'] = $this->cart_database_model->get_cart_products($this->session->userdata('id_cart'));
$param['cart_items'] = $this->cart_database_model->get_cart_quantity($this->session->userdata('id_cart'));
$param['shipping'] = $this->product_model->get_delivery_price();
$param['cart_sub_total'] = $this->cart_database_model->get_cart_subtotal($this->session->userdata('id_cart'));
$param['cart_total'] = number_format($this->cart_database_model->get_cart_subtotal($this->session->userdata('id_cart')) + $this->product_model->get_delivery_price(),2);
} else {
$param['cart_content'] = $this->cart->contents();
$param['cart_items'] = $this->cart->total_items();
$param['shipping'] = $this->product_model->get_delivery_price();
$param['cart_sub_total'] = $this->cart->total();
$param['cart_total'] = number_format($this->cart->total() + $this->product_model->get_delivery_price(),2);
}
$data['csscolor'] = 'color_blue.css';
$info['best_sellers']=$this->sellers_model->best_sellers(10);
$data['right_side_content']=$this->load->view('right_side_slide_view',$info,true);
$data['content'] = $this->load->view('cart_view', $param, true);
$this->load->view('main_layout', $data);
}

Es una opción para mostrar un carro de compras guardado en base de datos o el temporal que viene nativo con el framework
no entiendo de donde me pone el where porque estoy usando la función get() solamente, tengo en el autoload ese modelo no se si tenga que ver

Si alguien me puede dar una idea por favor voy a estar muy agradecido
Saludos
  #2 (permalink)  
Antiguo 06/05/2011, 20:09
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema consulta get

pues el problema es sencillo el mismo error te lo dice no existe el campo id_cart al que estas haciendo referencia en tu consulta, revisa esto y veras que lo solucionas
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 07/05/2011, 07:57
 
Fecha de Ingreso: enero-2011
Mensajes: 74
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Problema consulta get

Hola gracias por responderme
Si entiendo el error es que parece algo de magia porque si te fijas en el modelo mi consulta no tiene where, o sea no hago referencia a id_cart y si le pongo un where me anexa otra condición más aparte de la del id_cart , no se si es posible que poner o hacer algo que me pueda dar este problema, no se si porque tengo en variable de sesion un id_cart o porque tengo el modelo en autoload en fin el error lo entiendo pero es que no tengo where en mi consulta, no tengo idea de que puede pasar ,
Muchas gracias igual
  #4 (permalink)  
Antiguo 07/05/2011, 08:08
 
Fecha de Ingreso: enero-2011
Mensajes: 74
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Problema consulta get

Además el 3 que sale en el where ees el valor del cart de la variable de session que tengo , es muy raro como me está generando eso solo, tal vez es algo que no me he dado cuenta ,
  #5 (permalink)  
Antiguo 07/05/2011, 09:01
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años, 1 mes
Puntos: 24
Respuesta: Problema consulta get

Hola,

Intenta poner un $this->db->flush_cache() al comenzar la funcion del modelo, algo asi:
Código PHP:
Ver original
  1. public function get_delivery_price() {
  2.     $this->db->flush_cache();
  3.     $this->db->select('delivery_price')->from('delivery_price_table');
  4.     $query = $this->db->get();
  5.     return $query->row()->delivery_price;
  6. }

Entre tantas consultas tal vez se filtro un where.

Mas info: Active Record Caching

Saludos
  #6 (permalink)  
Antiguo 07/05/2011, 15:40
 
Fecha de Ingreso: enero-2011
Mensajes: 74
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Problema consulta get

No he resulto , creo que tiene algo que ver con mis sesiones pues yo muestro 2 carros como pueden ver en la funcio cart un carro guardado en base de datos(cuando estás logueado) y otro que es temporal en el temporal también usu la función $this->product_model->get_delivery_price() sin embargo no me da problemas solo me explota cuando estoy logueado
Probe lo de la caché pero nada , de todos modos yo no la estoy usando o sea que no entiendo que puede estar pasando
  #7 (permalink)  
Antiguo 07/05/2011, 17:29
 
Fecha de Ingreso: enero-2011
Mensajes: 74
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Problema consulta get

Hola:
Ya encontre el problema:
Al querer ejeutar este codigo de mi controladora:
Código PHP:
$param['cart_items'] = $this->cart_database_model->get_cart_quantity($this->session->userdata('id_cart'));
$param['shipping'] = $this->product_model->get_delivery_price(); 
, la función get_delivery_price() me daba el error que postee y era porque tenía un error en la función get_cart_quantity($this->session->userdata('id_cart')) que tenía el codigo:
Código PHP:
public function get_cart_quantity($id_cart) {
        
$this->db->where('id_cart'$id_cart);
        
$quantity $this->db->count_all('cart_product_table');
        return 
$quantity;
    } 
Y el problema era que la función count_all() de codeigniter no soporta la clausura where dejandolo colgado en cache o algo por el estilo porque me lo agregaba siempre al codigo sql generado despues de ejecutar esta funcion, tuve que usar la función count_all_results():
Código PHP:
public function get_cart_quantity($id_cart) {
        
$this->db->where('id_cart'$id_cart);
        
$this->db->from('cart_product_table');
        
$quantity $this->db->count_all_results();
        return 
$quantity;
    } 
Muchas gracias por la ayuda prestada igual, la lección aprendida fué leer con más detenimiento los cartelitos rojos del user_guide jej

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 11:17.