Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

¡¡¡ personalizar consultas a la BD en cake !!!

Estas en el tema de ¡¡¡ personalizar consultas a la BD en cake !!! en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos, tengo el siguiente problema: tengo una tabla que es como sigue id | nombre_carrera | informacion_varia _carrera ----------------------------------------------------------------------- 33 | enfermeria | ...
  #1 (permalink)  
Antiguo 24/06/2009, 01:00
 
Fecha de Ingreso: junio-2009
Mensajes: 13
Antigüedad: 15 años, 6 meses
Puntos: 0
¡¡¡ personalizar consultas a la BD en cake !!!

Hola a todos,
tengo el siguiente problema:
tengo una tabla que es como sigue

id | nombre_carrera | informacion_varia _carrera
-----------------------------------------------------------------------
33 | enfermeria | datos varios...

lo que quiero hacer es eliminar informacion de la tabla... para ello
esta delete que llama a la funcion del().

Pero al utilizar dicha funcion me borra la tupla entera y, lo que en
realidad quiero es actualizar la tupla quedando de la siguiente
forma:

id | nombre_carrera | informacion_varia _carrera
-----------------------------------------------------------------------
33 | |

es decir,
UPDATE tabla SET nombre_carrera = '', informacion_varia_carrera = ''
WHERE tabla.id = 33

Como personalizo una consulta en cake....??? o me sale mas facil crear
una nueva funcion??? y como lo hago ???

Última edición por ariste; 24/06/2009 a las 09:03
  #2 (permalink)  
Antiguo 24/06/2009, 10:09
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: ¡¡¡ personalizar consultas a la BD en cake !!!

Puedes hacerlo igual que cuando añades o modificas datos de un registro
Código PHP:
public function borrar($id)
{
    
$data['Tabla']['id'] = $id;
    
$data['Tabla']['nombre_carrera'] = '';
    
$data['Tabla']['informacion_varia_carrera'] = '';
   
    
$this->Tabla->save($data);

O también puedes usar el método query de Model.
Código PHP:
public function borrar($id)
{
    
$sql "UPDATE tabla SET nombre_carrera = '', informacion_varia_carrera = ''
WHERE tabla.id = $id"
;
    
$this->Tabla->query($sql);

  #3 (permalink)  
Antiguo 24/06/2009, 13:37
 
Fecha de Ingreso: junio-2009
Mensajes: 13
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¡¡¡ personalizar consultas a la BD en cake !!!

Probe lo que me dijiste.. no me sale ningun error y tamoco me modifica los datos en la base datos :s

El codigo que tengo en el controlador es el siguiente:
function borrar($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid id for Tabla', true));
$this->redirect(array('action'=>'index'));
}
else{
$data['Tabla']['id'] = $id;
$data['Tabla']['nombre_carrera'] = '';
$data['Tabla']['informacion_varia_carrera'] = '';
$this->Tabla->save($this->data);
$this->Session->setFlash(__('La informacion de la tabla se ha eliminado.', true));
$this->redirect(array('action'=>'index'));
}
}

y lo que tengo en la vista es:
<?php echo $html->link(__('Eliminar', true), array('action'=>'borrar', $tabla['Tabla']['id']),null, sprintf(__('Esta seguro se eliminar esta informacion. La Tabla quedara sin datos.', true), $tabla['Tabla']['id'])); ?>


que es lo que estoy haciendo mal ???
  #4 (permalink)  
Antiguo 24/06/2009, 13:49
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: ¡¡¡ personalizar consultas a la BD en cake !!!

Fíjate que en el controlador haces un save pasándo como valor $this->data, pero tus datos están guardados en $data. Son dos cosas diferentes.
  #5 (permalink)  
Antiguo 24/06/2009, 13:50
 
Fecha de Ingreso: junio-2009
Mensajes: 13
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¡¡¡ personalizar consultas a la BD en cake !!!

Código PHP:
public function borrar($id)
{
    
$sql "UPDATE tabla SET nombre_carrera = '', informacion_varia_carrera = ''
WHERE tabla.id = $id"
;
    
$this->Tabla->query($sql);

[/QUOTE]


Esto si me resulto!!!
gracias!! te pasaste XD
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 02:22.