obtengo el objeto libro $this->libros = LibrosPeer::retrieveByPK($id);

Obtener UN registro de la BD (Sentencia SELECT SQL) class librosActions extends sfActions{ ... public function executeVer(sfWebRequest $request) { //

1 downloads 133 Views 158KB Size

Recommend Stories


El libro es un objeto que despierta nuestros
Agosto, 2004 E UN PROYECTO POSIBLE. l libro es un objeto que despierta nuestros sentidos. Ya sea enorme y pesado como las antiguas Biblias medieval

EL GRUPO, OBJETO DE ESTUDIO
Universidad de Buenos Aires-Facultad de Ciencias Sociales Equipo de Cátedras del Prof. Ferrarós EL GRUPO, OBJETO DE ESTUDIO Lic. Lucía Melamed Cuand

La Muerte y el Objeto
90 - Revista Uruguaya de Psicoanálisis 2009 ; 108 : 90 - 107 La Muerte y el Objeto Javier García 1 1- Introducción El concepto de objeto en Freud

Story Transcript

Obtener UN registro de la BD (Sentencia SELECT SQL)

class librosActions extends sfActions{ ... public function executeVer(sfWebRequest $request) { //Obtener el id del libro por url (get) $id = $request->getParameter('id');

}

//obtengo el objeto libro $this->libros = LibrosPeer::retrieveByPK($id);

… verSuccess.php //Accedo a las propiedades (campos de mi objeto/registro libro) //los GETTERS son funciones gets para leer los campos o propiedades de los objetos Id:
Nombre:
Precio:
//Accedo al nombre de la categoría(objeto categoría relacionado) de un libro Categoria:
//Accedo al nombre de la editorial(objeto editorial relacionado) de un libro Editorial: } Al trabajar con objetos que representan a los registros de la base de datos podemos extraer la información de una forma elegante a través de la notación punto del paradigma de la orientación a objetos. Evidentemente es algo más lento pues hay una traducción interna a sentencias sql Imaginar hacer eso en php y con sql. Tendríamos que crear los arrays, hacer la conexión con la BD, hacer la SQL y almacenar el resultado en el vector … Select L.LibroId, L.NombreLibro, L.precio, C.NombreCategoria, E.NombreEditorial From Categorias C, Editorial E, Libros L Where (L.categoriaId=C.categoriaId) and (L.editorid=E.editorialId)

José Antonio Morgado Berruezo [email protected]

Symfony 1.2

Insertar un nuevo registro en la BD (Sentencia INSERT SQL) class librosActions extends sfActions{ … function executeNew(sfWebRequest $request) { //categoria_id, editor_id, libro_id son autoincrementales //los SETTERS son funciones set para modificar los campos o propiedades de los //objetos //se crea, se rellena y se guarda una categoria $categoria = new Categorias(); $categoria->setNombreCategoria('Redes'); $categoria->save(); //graba en disco. //se crea, se rellena y se guarda una editorial $editor = new Editores(); $editor->setNombreEditorial('ra-ma'); $editor->save(); //se crea, se rellena y se guarda un libro $this->libro= new Libros(); $this->libro->setNombreLibro('El manual de Symfony 1.2'); $this->libro->setPrecio(45); $this->libro->setDescripcion('es buenísimo ...'); $this->libro->setEntrega(1); $this->libro->setImagen('logo_symfony.jpg');

}

//se enlaza el libro a la categoria y editor creados $this->libro->setCategoriaid($categoria->getCategoriaid()); $this->libro->setEditorid($editor->getEditorid()); $this->libro->save();

El template NewSuccess.php podría tener el mensaje de categoria, editor y libro creados con éxito Pensar que los valores anteriores deberían de cogerse de los formularios correspondientes a la insercción de una nueva Categoría, Editorial y Libro. En estos casos deberíamos de haber realizado en nuestra aplicación php las siguientes consultas SQL entre otras 1000 instrucciones php … : INSERT INTO Categorias ("NombreCategoria") VALUES ("Redes”); //suponer que se crea la categoria con categoriaId=3 I

NSERT INTO Editorial ("NombreEditorial") VALUES ("Ra-Ma”); //Suponer que se crea le editorial con editorId=4

INSERT INTO Libros (NombreLibro, Precio, Descripcion, Entrega, Imagen, CategoriaId, EditorId) VALUES ("El manual de Symfony 1.2”, “Es buenisimo”, 1, “logo...”, 3, 4);

José Antonio Morgado Berruezo [email protected]

Symfony 1.2

Actualizar un registro existente en la BD (Sentencia UPDATE SQL) class librosActions extends sfActions{ … public function executeEdit(sfWebRequest $request) { $id = $request->getParameter('id'); $this->libros = LibrosPeer::retrieveByPK($id); $this->libros->setPrecio ('34'); $this->libros->save(); } El template EditSuccess.php podría tener el mensaje de libro actualizado con éxito UPDATE Libros SET precio = 34 WHERE LibroId = $id

José Antonio Morgado Berruezo [email protected]

Symfony 1.2

Obtener VARIOS registros (con condiciones) de la BD (Sentencia SELECT SQL) Idea del Proceso con doSelectRS() Obtener Libro_id, precio, nombre editorial, nombre categoria cuya entrega>2 class librosActions extends sfActions{ … public function executeListar(sfWebRequest $request) { //(paso 1) creamos criteria . Contruimos la SELECT $c = new Criteria(); //(paso 1.1) seleccionamos las columnas: addSelectColumn() de la SELECT $c->addSelectColumn(LibrosPeer::LIBRO_ID); $c->addSelectColumn(LibrosPeer::PRECIO); $c->addSelectColumn(EditoresPeer::NOMBRE_EDITORIAL); $c->addSelectColumn(CategoriasPeer::NOMBRE_CATEGORIA); //(paso 1.2) Construimos la clausula WHERE //(paso 1.2.1)Hacemos Joins: addJoin() que relacionan tablas por las claves primarias para extraer nombre de categoría y editorial $c->addJoin(LibrosPeer::EDITORID,EditoresPeer::EDITORID); $c->addJoin(LibrosPeer::CATEGORIAID,CategoriasPeer::CATEGORIAID); //(paso 1.2.2)Hacemos los filtros: add() $c->add(LibrosPeer::ENTREGA,2, Criteria::GREATHER_THAN) //(paso 1.3) Ordenamos los registros u objetos por nombreEditorial $c->addDescendingOrderByColumn(EditoresPeer::NOMBRE_EDITORIAL); //(paso2) Hacemos la selec: doSelectRS() y obtenemos el resulset (paso 3) $this->libros = LibrosPeer::doSelectRS($c);

Listarsuccess.php //(paso4) Recorremos el recordset (array de REGISTROS) Id:

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.