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();
	}
}