Foros del Web » Programando para Internet » PHP »

Crear clase para consultar, insertar, actualizar, borrar

Estas en el tema de Crear clase para consultar, insertar, actualizar, borrar en el foro de PHP en Foros del Web. Hola a todos, Me encuentro un poco atareado en el siguiente predicamento: quiero hacer una clase que me permita en una tabla consultar, insertar, actualizar ...
  #1 (permalink)  
Antiguo 23/06/2017, 16:14
 
Fecha de Ingreso: agosto-2006
Ubicación: Girardot
Mensajes: 27
Antigüedad: 17 años, 8 meses
Puntos: 2
Pregunta Crear clase para consultar, insertar, actualizar, borrar

Hola a todos,

Me encuentro un poco atareado en el siguiente predicamento: quiero hacer una clase que me permita en una tabla consultar, insertar, actualizar y eliminar. Pero que tome mi clase que he creado para conectar a mi base de datos; la cual es la siguiente:

Clase php dbCon.php

Código:
<?php
class DataBase
{
	// Atributos
	private $dbHost = "localhost";
	private  $dbName = "new_sivca";
	private  $dbUser = "root";
	private $dbPass = "root";

	// Metodos
	public function dbConectar()
	{
		try {
			$dbCon = new PDO("mysql:host={$this->dbHost};dbname={$this->dbName}",$this->dbUser,$this->dbPass);
			$dbCon->exec("SET CHARACTER SET utf8");
			$dbCon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
			$dbCon->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
			$dbCon->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
			$dbCon->setAttribute(PDO::ATTR_PERSISTENT, true);
			return $dbCon;
		} catch (Exception $e) {
			die("<p>— Se ha presentado un error inexperado en la conexión a la base de datos. —</p>
			<b>Error</b>: ".$e->getMessage()."."
			."<br><b>Línea en la que ocurrió el error</b>: ".$e->getCode()
			." presente en el <b>Archivo</b>: <i>".$e->getFile()."</i>"
			."<br><b>Código de error</b>: ".$e->getCode()."."
			."<p>".$e->getTraceAsString()."</p>"
		);
		}finally{
			$dbCon = null;
		}
	}
}
?>
La tabla a al cual deseo hacer esto se llama "ramo"; consta de los siguientes campos: id, ramo, estado. Para ello he creado la clase Ramo. La cual la he definido de la siguiente manera:

Clase php class.Ramo.php

Código:
<?php
/**
 * Clase Ramos
 */

class Ramos
{

	public function getRamosLista()
	{
		try 
		{
			$resultado = array();
			$stm = $this->dbCon->prepare("CALL spRamos_lst()");
		  $stm->execute();
			$row = $stm->fetchAll(PDO::FETCH_OBJ);
		} catch (Exception $e) {
			die("Error: ".$e->getMessage());
		}
		
		#si hay registros
		if ($stm->rowCount()>0)
		{
			while($row){
				echo 
				"<tbody>
	<tr>
		<td>".$row->id."</td>
		<td>".$row->ramo."</td>
		<td>".$row->estado."</td>
	</tr>
</tbody>";
			}
		}
	}
}
?>
De ante mano agradezco cualquier sugerencia al respecto.
  #2 (permalink)  
Antiguo 23/06/2017, 20:49
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Crear clase para consultar, insertar, actualizar, borrar

Extienda y listo...

class Ramos extends DataBase
  #3 (permalink)  
Antiguo 26/06/2017, 00:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Crear clase para consultar, insertar, actualizar, borrar

La clase DataBase es solo para establecer la conexión?

Si es el caso, podrías crear la propiedad $dbCon en tu controlador principal y pasarla por parámetro a las otras clases. Además, dentro de la clase DataBase simplemente creas una variable y no una propiedad, porque le falta el prefijo $this->

Código PHP:
Ver original
  1. class Ramos {
  2.     private $dbCon;
  3.     // Aquí las demás propiedades de la clase
  4.  
  5.     public function __construct(DataBase $dbCon) {
  6.         $this->dbCon = $dbCon;
  7.     }
  8.     // Aquí el resto de métodos
  9. }
  10.  
  11. // Primero conectas a base de datos
  12. $dbCon = new DataBase();
  13. $dbCon->dbConectar();
  14.  
  15. // Luego creas la instancia de Ramos
  16. $ramos = new Ramos($dbCon);
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 26/06/2017, 07:56
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Crear clase para consultar, insertar, actualizar, borrar

Aparte de lo comentado por los compañeros para utilizar la conexión.

Decir que es una mala idea pintar las tablas o el html mejor dicho, directamente desde las clases, no por que no sea posible, pero esos métodos serán poco reusables a parte de costoso de mantener a la larga, es mejor retornar los datos y que en la vista se pinten como se quiera. Es decir la clase se debe encargar de retornar solo los datos y nada más. Así lo muestres donde y como lo muestres la clase no se tendrá que tocar.

Ya que mencionas indirectamente que la clase es para un CRUD yo crearía los siguientes métodos base:

Código PHP:
Ver original
  1. class Ramos extends DataBase
  2. {
  3.     public function index($datos_paginacion)
  4.     {
  5.         // Retorna todos los datos, con o sin paginación, según necesidades
  6.     }
  7.  
  8.     public function show($idRegistro)
  9.     {
  10.         // Retorna los datos de un registro por su id
  11.     }
  12.  
  13.     public function update($idRegistro)
  14.     {
  15.         // Actualiza un registro por su id y retorna index() o show()
  16.     }
  17.  
  18.     public function destroy($idRegistro)
  19.     {
  20.         // Elimina un registro por su id y retorna index()
  21.     }
  22.  
  23.     public function create($datos)
  24.     {
  25.         // Añade un nuevo registro y retorna index() o show()
  26.     }
  27. }

Creo que poco más te puede hacer falta.
__________________
Unset($vida['malRollo']);

Etiquetas: 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 12:12.