Foros del Web » Programando para Internet » PHP »

Ejemplos de POO

Estas en el tema de Ejemplos de POO en el foro de PHP en Foros del Web. Hola foreros ahora tengo que aprender Programacion Orientada a Objetos con PhP y ya e trabajado bastante PhP estructurado, he leido algunos manuales de PhP ...
  #1 (permalink)  
Antiguo 21/09/2010, 14:45
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 9 meses
Puntos: 52
Ejemplos de POO

Hola foreros ahora tengo que aprender Programacion Orientada a Objetos con PhP y ya e trabajado bastante PhP estructurado, he leido algunos manuales de PhP 5 OO, pero lo que quiero es hacer lo que hacia de forma estructura hacerlo de forma POO.

Me podrian ayudar con ejemplos basicos como: Hacer una consulta, actualizar un registro, eliminar un registro.

Ya con esto yo podria empezar, agradesco su ayuda.

Gracias.
  #2 (permalink)  
Antiguo 21/09/2010, 14:55
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 8 meses
Puntos: 461
Respuesta: Ejemplos de POO

vistes los post que hay ak, hay muchos que son sencillos y estan bien explicados busk en el foro xq ejemplos hay solo tienes que ver he ir conociendo la OOP fijate como comence yo y todo lo que me digeron http://www.forosdelweb.com/f68/estoy...o-bien-833611/ esta muy sencillo lo que preguntaba y dieron mucha ayudas y link, claro queda de ti buscar mas informacion al respecto
__________________
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 23/09/2010, 10:29
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Ejemplos de POO

A mi me parece bueno usar la POO segun el modelo MVC. Es decir, separar las consultas a base de datos (o a xml o lo que fuere) en un archivo aparte, y mantener la logica en un archivo controlador.php

Así, tendrías funciones para la logica, que llaman a funciones que obtienen datos.

La comunicación entre dos objetos puede darse de muchas maneras. A veces se inicializa un objeto en el constructor del otro (ej: el objeto que hace las consultas a mysql en el contructor del archivo de logica). Luego se pasa ese objeto como parametro a las funciones que lo necesiten (las que vayan a buscar algo en bd). Etc, etc. Es preferible pasar parametros que usar variables globales.
  #4 (permalink)  
Antiguo 23/09/2010, 15:08
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 9 meses
Puntos: 52
Respuesta: Ejemplos de POO

Hola amigos, he intentado insertar un registro en una tabla, con clases y objetos pero no he logrado que funcione, este es el codigo que tengo:

Código:
<?php
class conexion{
    private $mysqlHost;
    private $mysqlUser;
    private $mysqlPass;
    private $db;
    private $connect;
    private $resultado; 
    private $campos;
    private $valores;
    private $table;
    private $values;

    public function __construct($mysqlHost="localhost",$mysqlUser="root",$mysqlPass="osslttgg",$db="bd_egresados"){ 
    	#inicializamos los datos de la clase y solicitamos la conexion con el servidor
        $this->mysqlHost=$mysqlHost;
        $this->mysqlUser=$mysqlUser;
        $this->mysqlPass=$mysqlPass; 
        $this->db=$db;
        $this->conectar();         
    } 

    private function conectar(){
        $this->connect=mysql_connect($this->mysqlHost,$this->mysqlUser,$this->mysqlPass) or die ("no se pudo conectar con el servidor ".mysql_error());     
        $this->select_db($this->db);
		#seleccionamos la base de datos q indicamos si deseamos cambiar usamos el metodo     
    } 

    public function select_db($db) {
        mysql_select_db($db) or die ("Error al conectar con base de datos ".mysql_error());
    } 

 	public function insert($table,$campos,$values){
		mysql_query("INSERT INTO ".$table." (".$campos.") VALUES (".$values.")");					
	} 
}
?>
Aqui instancio la clase y envio los parametros a la funcion insert:

Código:
<?php 
	require("include/conex.class.php");
	
	$consulta = new conexion;
	$consulta->insert("tb_cursos_ant","nom_curso","probando");
?>
pero no funciona, ¿Cuál es el error?

Espero puedan ayudarme. Gracias.
  #5 (permalink)  
Antiguo 23/09/2010, 15:10
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 8 meses
Puntos: 461
Respuesta: Ejemplos de POO

Cita:
Iniciado por mayid Ver Mensaje
A mi me parece bueno usar la POO segun el modelo MVC. Es decir, separar las consultas a base de datos (o a xml o lo que fuere) en un archivo aparte, y mantener la logica en un archivo controlador.php

Así, tendrías funciones para la logica, que llaman a funciones que obtienen datos.

La comunicación entre dos objetos puede darse de muchas maneras. A veces se inicializa un objeto en el constructor del otro (ej: el objeto que hace las consultas a mysql en el contructor del archivo de logica). Luego se pasa ese objeto como parametro a las funciones que lo necesiten (las que vayan a buscar algo en bd). Etc, etc. Es preferible pasar parametros que usar variables globales.
totalmente de acuerdo pero debe de familiarizarse primero con todo la forma de trabajar primero, bueno aca hay varios link que me dio un compañero del foro a mi con respecto al patron MVC
http://arleytriana.blogspot.com/2009...lasico-de.html
http://web2development.blogspot.com/...atron-mvc.html
http://webcache.googleusercontent.co...&ct=clnk&gl=es
estan muy buenos todos es cuestion de leerlos y practicar para aprender saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 23/09/2010, 15:15
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 8 meses
Puntos: 461
Respuesta: Ejemplos de POO

que error te da?? depura tu consulta
Código PHP:
Ver original
  1. mysql_query("INSERT INTO ".$table." (".$campos.") VALUES (".$values.")") or die (mysql_error());
, veo que mas o menos agarraste el modelo que puse en el post que te di como ejemplo bueno si te fijal al final uso PDO y esta mejor ya que la que hice al principio eran pruebas para irme acostumbranda a desarrollar orientado a objeto, de echo puedes crear una de la manera que se te haga mas facil a ti xq eso va de la mano de lo que se le haga mas facil al que esta desarrollando
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 23/09/2010, 15:32
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 9 meses
Puntos: 52
Respuesta: Ejemplos de POO

Este es el error:

Código:
Unknown column 'probando' in 'field list'
No se por que me esta tomando el valor como un campo de la tabla.
  #8 (permalink)  
Antiguo 23/09/2010, 15:36
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 8 meses
Puntos: 461
Respuesta: Ejemplos de POO

mm has esta prueba
Código PHP:
Ver original
  1. $sql="INSERT INTO ".$table." (".$campos.") VALUES ('".$values."')";
  2. echo $sql;
de todas maneras creo que tu problema es que no esta entre comillas simple el valor ya que es un string si fuera un campo int no te diera problemas pero si string te da prueba asi
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 23/09/2010, 15:45
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 9 meses
Puntos: 52
Respuesta: Ejemplos de POO

Ok amigo, gracias era lo de las comillas simples.
  #10 (permalink)  
Antiguo 23/09/2010, 15:52
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 8 meses
Puntos: 461
Respuesta: Ejemplos de POO

pero es bueno que sigas investigando para que aprndas mas te deje unos buenos link del patron MVC y bueno en el link de referencia que te deje al principio fijate todos los concejos que me daban tomalos en cuenta saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #11 (permalink)  
Antiguo 27/09/2010, 08:38
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 9 meses
Puntos: 52
Respuesta: Ejemplos de POO

Ok ya he estado leyendo algo sobre MVC de los links.

Pero ahora me surge otra duda

Código:
<?php
class conexion{
    private $mysqlHost;
    private $mysqlUser;
    private $mysqlPass;
    private $db;
    private $connect;
    private $resultado; 
    private $campos;
    private $valores;
    private $table;
    private $values;

    public function __construct($mysqlHost="localhost",$mysqlUser="root",$mysqlPass="osslttgg",$db="bd_egresados"){ 
    	#inicializamos los datos de la clase y solicitamos la conexion con el servidor
        $this->mysqlHost=$mysqlHost;
        $this->mysqlUser=$mysqlUser;
        $this->mysqlPass=$mysqlPass; 
        $this->db=$db;
        $this->conectar();         
    } 

    private function conectar(){
        $this->connect=mysql_connect($this->mysqlHost,$this->mysqlUser,$this->mysqlPass) or die ("no se pudo conectar con el servidor ".mysql_error());     
        $this->select_db($this->db);
		#seleccionamos la base de datos q indicamos si deseamos cambiar usamos el metodo     
    } 

    public function select_db($db) {
        mysql_select_db($db) or die ("Error al conectar con base de datos ".mysql_error());
    } 

 	public function insert($table,$campos,$values){
		$insert="INSERT INTO ".$table." (".$campos.") VALUES (".$values.")";
		$result=mysql_query($insert);
	} 
	
	public function select1($campos,$table){
		$cons="SELECT ".$campos." FROM ".$table."";
		$result=mysql_query($cons);
	}
	
	public function delete($table,$condicion){
		$delete="DELETE FROM ".$table." WHERE ".$condicion."";
		$result=mysql_query($delete);
	}
}
?>
tengo otra funcion para consultas, como hago para mostrar el resultado de esa contulta. La funcion recibe dos parametros $campos si es alguno en especila o * para todos y $table si quisiera mostrar el resultado de esta consulta en una grilla o tabla, como lo haria.

Gracias.
  #12 (permalink)  
Antiguo 27/09/2010, 16:10
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 8 meses
Puntos: 461
Respuesta: Ejemplos de POO

pues pasalos por parametros asi lo pasas yo en la que coloque para que me dijeran todo lo mal que iba jajaja lo hacia recibiendo array con los campos para luego hacer un implode de estos y ver pero es cuestion de como tu lo desees, hacer aunque todavia no entiendo la duda y bueno si kieres hacer algo para conexion lo que mas me han recomendado aca y en otras partes es usar PDO revisa informacion sobre esta saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 27/09/2010, 18:22
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 9 meses
Puntos: 52
Respuesta: Ejemplos de POO

Gracias carlos_belisario por tus respuestas lo que quiero es ejecutada una consulta:

Código:
$consulta = new conexion;
$consulta->select("*","tabla");
de esta manera se ejecuta la consulta pero como hago para imprimir el resultado de cada uno de los campos de esta tabla, de manera estructurada lo hacia asi:

Código:
$cons=mysql_query("SELECT * FROM tabla");
$rows=mysql_num_rows($cons);
$i=0;
while($i < $rows){
$resultado=mysql_fetch_array($cons);
//todos los campos de la tabla
}
esto es facil para mi ahora, ¿pero si es POO como lo hago?

Espero hayas entendido mi pregunta y puedas ayudarme gracias.
  #14 (permalink)  
Antiguo 27/09/2010, 20:31
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 8 meses
Puntos: 461
Respuesta: Ejemplos de POO

pues cada kien tiene su manera yo realizaba un metodo para devolver resultados, si lo deseaba
Cita:
public function mostrar_resultados($query){

while($this->row=mysql_fetch_array($query)){

$this->result=$this->row;

}

return $this->result;

}
pero cada kien tiene su manera te recomiendo que veas lo que te dij de PDO que es mas seguro y mejor ya que es una clase nativa de PHP pero si lo q kieres es irte adentrando en la POO te recomiendo este link es bueno y explica cada una de las cosas desde el principio saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #15 (permalink)  
Antiguo 27/09/2010, 20:49
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 9 meses
Puntos: 52
Respuesta: Ejemplos de POO

Muchas gracias carlos_belisario bueno apenas estoy empezando a la POO con PhP, y por ahora estoy haciendo ejmplos basicos de insertar, mostrar, actualizar y eliminar con POO, ya despues a medida de que vaya estudiando pues voy a necesitar muchisima mas ayuda de uds.

Gracias de nuevo.

Etiquetas: ejemplos, poo
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 12:08.