File "CursoModelo.php"
Full Path: C:/wamp64/www/Formaciones/Modelos/CursoModelo.php
File size: 1.71 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// Modelos/CursoModelo.php
class CursoModelo {
private $db;
public function __construct($db) {
$this->db = $db;
}
public function listarTodos() {
return $this->db->query("SELECT * FROM courses ORDER BY created_at DESC");
}
public function crearCompleto($d) {
$stmt = $this->db->prepare("INSERT INTO courses (title, description, duracion, limite_at, status, created_at) VALUES (?, ?, ?, ?, ?, NOW())");
$stmt->bind_param("ssiss", $d['title'], $d['description'], $d['duracion'], $d['limite_at'], $d['status']);
return $stmt->execute();
}
public function actualizarCompleto($id, $d) {
$stmt = $this->db->prepare("UPDATE courses SET title = ?, description = ?, duracion = ?, limite_at = ?, status = ? WHERE id = ?");
$stmt->bind_param("ssissi", $d['title'], $d['description'], $d['duracion'], $d['limite_at'], $d['status'], $id);
return $stmt->execute();
}
public function eliminar($id) {
$stmt = $this->db->prepare("DELETE FROM courses WHERE id = ?");
$stmt->bind_param("i", $id);
return $stmt->execute();
}
/** Contar el total de cursos para calcular las páginas */
public function contarTotal() {
$sql = "SELECT COUNT(*) as total FROM courses";
$resultado = $this->db->query($sql);
$fila = $resultado->fetch_assoc();
return $fila['total'];
}
/** Listar cursos con límite de registros (Paginación) */
public function listarPaginado($inicio, $cantidad) {
$stmt = $this->db->prepare("SELECT * FROM courses ORDER BY created_at DESC LIMIT ?, ?");
$stmt->bind_param("ii", $inicio, $cantidad);
$stmt->execute();
return $stmt->get_result();
}
}