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

insertar PHP POO MVC

Estas en el tema de insertar PHP POO MVC en el foro de Frameworks y PHP orientado a objetos en Foros del Web. bueno ante todo gracias por darse el tiempo para leer este mensaje ..me gustaria que me ayudaran con este probemita ..miren esta cuestion de (altas ...
  #1 (permalink)  
Antiguo 06/04/2012, 14:02
 
Fecha de Ingreso: agosto-2010
Mensajes: 20
Antigüedad: 14 años, 3 meses
Puntos: 1
insertar PHP POO MVC

bueno ante todo gracias por darse el tiempo para leer este mensaje ..me gustaria que me ayudaran con este probemita ..miren esta cuestion de (altas bajas modifcaciones ) no se me hace muy dificil ...el punto k ahora lo estoy tratando de llevar pero a la POO MVC el cual estoy aprendiendo enforma autodidacta ....me gustaria saber porque no inserta correctamente en este ejemplo ..de antemano gracias por su tiempo ...pasen buenas tardes ...

Conexion.php

Código PHP:
Ver original
  1. <?php
  2. class Conexion{
  3.    
  4.     private static $servidor="localhost";
  5.     private static $usuario="root";
  6.     private static $clave="root";
  7.     private static $bd="vargas";
  8.    
  9.     public static function Conectarse(){
  10.     $link=@mysql_connect(self::$servidor,self::$usuario,self::$clave);
  11.    
  12.     if(!$link){
  13.         echo "Error conectando a la base de datos ".mysql_error();
  14.         exit();
  15.         }
  16.    
  17.     if(!mysql_select_db(self::$bd,$link)){
  18.         echo "Error seleccionando la base de datos.".mysql_error();
  19.         exit();
  20.         }
  21.    
  22.     return $link;
  23.     }
  24.    
  25.     public function Ejecutar_consulta($cadena){
  26.         $res=mysql_query($cadena,self::Conectarse());
  27.         if(!$res){
  28.             echo "Error al Ejecutar Consulta : ".mysql_error();
  29.             exit();
  30.             }
  31.         return $res;
  32.         }
  33.    
  34.     }

Persona.php
Código PHP:
Ver original
  1. <?php
  2. class Persona{
  3.        
  4.     private $codper;
  5.     private $nombre;
  6.     private $apellidos;
  7.    
  8.  
  9.     public function getCodper() {
  10.         return $this->codper;
  11.     }
  12.  
  13.     public function setCodper($codper) {
  14.         $this->codper = $codper;
  15.     }
  16.  
  17.     public function getNombre() {
  18.         return $this->nombre;
  19.     }
  20.  
  21.     public function setNombre($nombre) {
  22.         $this->nombre = $nombre;
  23.     }
  24.  
  25.     public function getApellidos() {
  26.         return $this->apellidos;
  27.     }
  28.  
  29.     public function setApellidos($apellidos) {
  30.         $this->apellidos = $apellidos;
  31.     }
  32.  
  33.  
  34.    
  35.     }

PersonaDAO.php

Código PHP:
Ver original
  1. <?php
  2. include_once("../Clases/Conexion.php");
  3. include_once("../Clases/Persona.php");
  4.  
  5.  
  6. class PersonaDAO {
  7.    
  8.     public function GrabarPersona(Persona $op) {
  9.         $objcon=new Conexion();
  10.         $cadena= "insert into persona(nombre,apellido)values($op->getNombre(),$op->getApellidos())";
  11.         $res=$objcon->Ejecutar_consulta($cadena);
  12.         return $res;
  13.     }
  14.  
  15. }
  16.  
  17.  
  18. ?>

y este es un archivo de prueba lo hice de esta forma para poder ver si inserta o no ...una vez k inserta lo modifico con su respectivo formulario con cajas de texto

Prueba.php
Código PHP:
Ver original
  1. <?php
  2. include_once("../DAO/PersonaDAO.php");
  3. include_once("../Clases/Persona.php");
  4. $miobjetoConexion=new Conexion();
  5. $objPersona=new Persona();
  6. $objPersona->setNombre("juan ");
  7. $objPersona->setApellidos("Perez");
  8.  
  9. $objDAO=new PersonaDAO();
  10.  
  11. $rpta=$objDAO->GrabarPersona($objpersona);
  12.  
  13.  
  14.  
  15.  
  16.  
  17. if($rpta){
  18.     echo 'consulta Exitosa : ';
  19. }

el problema es que cuando quiero insertar No guarda los datos en mi Bd de MYSql ..diganme que estoy haciendo mal ..gracias

Última edición por lokito1986; 06/04/2012 a las 14:17
  #2 (permalink)  
Antiguo 06/04/2012, 16:18
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: insertar PHP POO MVC

Si ejecutas el SQL generado en phpmyadmin o alguno similar, funciona correctamente ? y te sugiero que en vez de crear un wrapper al set de funciones mysql_* utilices PDO.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 06/04/2012, 17:06
 
Fecha de Ingreso: agosto-2010
Mensajes: 20
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: insertar PHP POO MVC

ante todo gracias por tu rpta amigo masterpuppet ....mira el prblema que tengo es que no puedo insertar los datos en mi Bd stoy utilizando phpmyadmin , cuando quiero grabar los datos no lohace ....si e tenido pensado aprender PDO ...pero antes de aprender PDO me e propuesto aprender 3 capas MVC php empezar desde basico e ir aumentando de dificultad ..el ejemplo mostrado es un inicio de este nuevo aprendizaje k pienso realizar ...

gracias por tu rpta amigo ..y tomare muy en cuenta tus consejos ..pero antes que nada me gustaria ue me ayudaras a resolver porque no graba en mi BD ..please
  #4 (permalink)  
Antiguo 07/04/2012, 10:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 20
Antigüedad: 14 años, 3 meses
Puntos: 1
porque no INSERTA DATOS PHP

buenos dias a todos me gustaria saber porque no inserta los datos en mi BD ..soy nuevo en esto de php POO MVC ...por favor si alguien puede corregir mis errores que estoy cometiendo en este ejemplo ...gracias de antemano..

Conexion.php


Código PHP:
Ver original
  1. <?php
  2. class Conexion{
  3.    
  4.     private static $servidor="localhost";
  5.     private static $usuario="root";
  6.     private static $clave="root";
  7.     private static $bd="vargas";
  8.    
  9.     public static function Conectarse(){
  10.     $link=@mysql_connect(self::$servidor,self::$usuario,self::$clave);
  11.    
  12.     if(!$link){
  13.         echo "Error conectando a la base de datos ".mysql_error();
  14.         exit();
  15.         }
  16.    
  17.     if(!mysql_select_db(self::$bd,$link)){
  18.         echo "Error seleccionando la base de datos.".mysql_error();
  19.         exit();
  20.         }
  21.    
  22.     return $link;
  23.     }
  24.    
  25.     public function Ejecutar_consulta($cadena){
  26.         $res=mysql_query($cadena,self::Conectarse());
  27.         if(!$res){
  28.             echo "Error al Ejecutar Consulta : ".mysql_error();
  29.             exit();
  30.             }
  31.         return $res;
  32.         }
  33.    
  34.     }

Persona.php
Código PHP:
Ver original
  1. <?php
  2. class Persona{
  3.        
  4.     private $codper;
  5.     private $nombre;
  6.     private $apellidos;
  7.    
  8.  
  9.     public function getCodper() {
  10.         return $this->codper;
  11.     }
  12.  
  13.     public function setCodper($codper) {
  14.         $this->codper = $codper;
  15.     }
  16.  
  17.     public function getNombre() {
  18.         return $this->nombre;
  19.     }
  20.  
  21.     public function setNombre($nombre) {
  22.         $this->nombre = $nombre;
  23.     }
  24.  
  25.     public function getApellidos() {
  26.         return $this->apellidos;
  27.     }
  28.  
  29.     public function setApellidos($apellidos) {
  30.         $this->apellidos = $apellidos;
  31.     }
  32.  
  33.  
  34.    
  35.     }

PersonaDAO.php
Código PHP:
Ver original
  1. 1.
  2.       <?php
  3.    2.
  4.       include_once("../Clases/Conexion.php");
  5.    3.
  6.       include_once("../Clases/Persona.php");
  7.    4.
  8.        
  9.    5.
  10.        
  11.    6.
  12.       class PersonaDAO {
  13.    7.
  14.          
  15.    8.
  16.           public function GrabarPersona( $op) {
  17.    9.
  18.               $objcon=new Conexion();
  19.   10.
  20.               $cadena= "insert into persona(nombre,apellido)values($op->getNombre(),$op->getApellidos())";
  21.   11.
  22.               $res=$objcon->Ejecutar_consulta($cadena);
  23.   12.
  24.               return $res;
  25.   13.
  26.           }
  27.   14.
  28.        
  29.   15.
  30.       }
  31.   16.
  32.        
  33.   17.
  34.        
  35.   18.
  36.       ?>

Prueba.php

Código PHP:
Ver original
  1. <?php
  2. include_once("../DAO/PersonaDAO.php");
  3. include_once("../Clases/Persona.php");
  4. $miobjetoConexion=new Conexion();
  5. $objPersona=new Persona();
  6. $objPersona->setNombre("juan ");
  7. $objPersona->setApellidos("Perez");
  8.  
  9. $objDAO=new PersonaDAO();
  10.  
  11. $rpta=$objDAO->GrabarPersona($objpersona);
  12.  
  13.  
  14.  
  15.  
  16.  
  17. if($rpta){
  18.     echo 'consulta Exitosa : ';
  19. }
  20.  
  21.  
  22. a la hora que quiero insertar NO GUARDA LOS DATOS EN LA BD ...que estoy haciendo mal please...
  23.  
  24. posdata : se que tal vez lo mejor sea utilizar PDO ...pero la cuestion es que quiero aprender PHPsin pdo .... luego de aprender bien MVC voy a ir aprendiendo pdo y cosas de mas nivel ..
  25. gracias a todos
  #5 (permalink)  
Antiguo 07/04/2012, 11:35
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 20 años, 3 meses
Puntos: 71
Respuesta: porque no INSERTA DATOS PHP

Ayudaría ver el error que te da, postealo.

Por cierto, te has asegurado que la sentencia sql que envias en la que quieres no? es decir, con los datos correctos etc...
  #6 (permalink)  
Antiguo 07/04/2012, 11:40
 
Fecha de Ingreso: agosto-2010
Mensajes: 20
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: porque no INSERTA DATOS PHP

claro amigo esa es la consulta mi tabla persona tiene 3 campos codpersona,nombre,apellido el prblema es que cuando ejecuto no guarda en la bD
  #7 (permalink)  
Antiguo 07/04/2012, 13:13
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 20 años, 3 meses
Puntos: 71
Respuesta: porque no INSERTA DATOS PHP

No me refería a los campos de la tabla, sino el formato de la consulta, con los valores correctos, comas, comillas, paréntesis, etc...

Por cierto, que error te sale? o simplemente no inserta los datos?
  #8 (permalink)  
Antiguo 07/04/2012, 15:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: porque no INSERTA DATOS PHP

sinceramente tienes tantos errores de implementación, entre los cuales

tienes una clase persona con la cual no veo que hagas nada, francamente una abstracción inútil si no se usa un orm como doctrine2, a no ser que phpDAO lo implemente, lo cual ignoro, al final escribes mucho código llamado getter por getter, cuando la idea es mapearlo

la clase de conexión ni siquiera es un singleton, con lo cual generas y generas conexiones a lo largo del script las cuales nunca usas, además de que la función estática ejecutar_consulta vuelve a llamar a conexión generando otro resource connection, lo que lo hace pesado, al menos si existiera un singleton la cosa funcionaria mejor

te recomiendo leer acerca de patrones de diseño, y que hagas una corrida en frío detallada para que notes la cantidad de conexiones innecesarias que haces, además si existe un clase persona, porque la clase personaDAO?????
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 08/04/2012, 08:13
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: insertar PHP POO MVC

No entiendo el razonamiento que estas haciendo sobre PDO, es reemplazar tu implementacion por PDO, es la misma capa, lo que no tiene sentido hoy en día es crear un wrapper.
Ahora para ayudarte deberías indicar que error te da, se ejecuta la query ?, la query esta bien formada ?

@maycol, esta intentado implementar DAO.
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 12/04/2012, 10:55
 
Fecha de Ingreso: agosto-2010
Mensajes: 20
Antigüedad: 14 años, 3 meses
Puntos: 1
No GUARDA Datos PHP

ante todos gracias por darse Un tiempo para ller este mensaje ..pero lo k pasa que soy un novato que estoy programando en PHP ...
bueno al intentar grabar no se puede y sale este error ...
Categoria si inserta Normal ..el problema viene cuando intento grabar UN PRODUcTO
Estoy Haciendo Lo correcto en progrmar de Esta forma ..si no es asi me gustaria que me hiceran ver donde ESTAN MIS HORRORES xD..

Error MOSTRADO :

Fatal error: Call to a member function EjecutarConsulta() on a non-object in C:\AppServ\www\trabajoMadrugada\Clases\Producto.ph p on line 34

Categoria.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once 'Conexion.php';
  4. class Categoria {
  5.     private $codigoCategoria;
  6.     private $_nombre;
  7.     private $_descripcion;
  8.     private $_objcon;
  9.    
  10.     public function getCodigoCategoria() {
  11.         return $this->codigoCategoria;
  12.     }
  13.  
  14.     public function setCodigoCategoria($codigoCategoria) {
  15.         $this->codigoCategoria = $codigoCategoria;
  16.     }
  17.  
  18.         function __construct() {
  19.         $this->_objcon=new Conexion();
  20.     }
  21.  
  22.     public function get_nombre() {
  23.         return $this->_nombre;
  24.     }
  25.  
  26.     public function set_nombre($_nombre) {
  27.         $this->_nombre = $_nombre;
  28.     }
  29.  
  30.     public function get_descripcion() {
  31.         return $this->_descripcion;
  32.     }
  33.  
  34.     public function set_descripcion($_descripcion) {
  35.         $this->_descripcion = $_descripcion;
  36.     }
  37.  
  38. public function grabarCategoria(){
  39.     $query="insert into categoria(nombre,descripcion)values('$this->_nombre','$this->_descripcion')";
  40.     $resultado = $this->_objcon->EjecutarConsulta($query);
  41.     return $resultado;
  42. }
  43. }
  44. ?>

Producto.php
Código PHP:
Ver original
  1. <?php
  2. require_once 'Categoria.php';
  3.  
  4. class Producto {
  5.     private $nombre;
  6.     private  $objCat;
  7.     private $objcon;
  8.    
  9.    
  10.     function __construct() {
  11.         $this->objcon=new Conexion();
  12.         $this->objCat=new Categoria();
  13.     }
  14.     public function getNombre() {
  15.         return $this->nombre;
  16.     }
  17.  
  18.     public function setNombre($nombre) {
  19.         $this->nombre = $nombre;
  20.     }
  21.  
  22.     public function getObjCat() {
  23.         return $this->objCat;
  24.     }
  25.  
  26.     public function setObjCat(Categoria $objcat) {
  27.         $this->objCat=$objcat;
  28.     }
  29.  
  30.     public function grabarProducto(){
  31.      
  32.         $micod=  $this->objCat->getCodigoCategoria();
  33.     $query="insert into producto (nombre,codcategoria)values('$this->nombre','$micod')";
  34.     $resultado = $this->_objcon->EjecutarConsulta($query);
  35.     return $resultado;
  36. }
  37.  
  38. }
  39.  
  40. ?>

Prueba.php
Código PHP:
Ver original
  1. <?php require_once '../Clases/Producto.php';
  2.  
  3. $objproducto=new Producto();
  4. $objcat=new Categoria();
  5. $objcat->setCodigoCategoria("2");
  6. $objcat->set_nombre("lacteos");
  7. $objcat->set_descripcion("tiene Calcio");
  8.  
  9. $objproducto->setNombre("Leche ");
  10. $objproducto->setObjCat($objcat);
  11.  
  12. $resp = $objproducto->grabarProducto();
  13.  
  14. if ($resp) {
  15.   echo 'Grabo exitosamente';
  16. }
  17. else{
  18.     echo 'fallo algo';
  19. }
  20.  
  21. ?>
  #11 (permalink)  
Antiguo 12/04/2012, 11:14
 
Fecha de Ingreso: abril-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: No GUARDA Datos PHP

Bueno yo tambien ando trabajando con PDO y tambien tengo un error parecido.Pero tu error
tal vez lo podamos solucionar mandandole los datos por paramentros de la siguiente forma:
Enviandole las variables por medio de parametros:
Un ejemplo!
Cita:
$consulta = "INSERT INTO $dbTabla
(nombre, apellidos)
VALUES (:nombre, :apellidos)";
$result = $db->prepare($consulta);
if ($result->execute(array(':nombre' => $nombre, ':apellidos' => $apellidos))) {
print "<p>Registro creado correctamente.</p>\n";
} else {
print "<p>Error al crear el registro.</p>\n";
}
sobre los :
estariamos realizando el insert mediante parámetros (:parametro)
Tal vez sea eso.O tal vez sea eso.Prueba y me dices.
Y ami tambien me interesa saber cual es tu error!

Etiquetas: clase, class, formulario, inserta, mvc, mysql, php, poo, sql, usuarios, guardar
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 00:45.