En el mundo moderno, gestionar nuestros gastos diarios de manera eficiente es crucial para mantener nuestras finanzas en orden. Crear una aplicación de monitoreo de gastos puede ser una solución perfecta para esta necesidad. En este post, te guiaré paso a paso en cómo crear una aplicación de monitoreo de gastos diarios en PHP, utilizando MySQL para el almacenamiento de datos. Esta guía está diseñada tanto para principiantes como para desarrolladores experimentados que buscan un proyecto práctico.
Video Explicativo
Introducción
Antes de comenzar, asegúrate de tener instalado un servidor local como XAMPP o WAMP, que incluye PHP y MySQL. Además, necesitarás un editor de texto o IDE, como Visual Studio Code o Sublime Text.
Esta aplicación gratuita, hace parte de un compendio de más de 80 aplicaciones PHP grauita de libre distribución, te invito a darle una mirada a mi blog completo, ya que también cuento con más de 70 aplicaciones premium en su gran mayoría a 15 USD que te podrían servir.
Paso 1: Configuración del Entorno
- Instala un servidor local: Si aún no tienes uno, descarga e instala XAMPP o WAMP.
- Crea la base de datos: Abre phpMyAdmin y crea una nueva base de datos llamada
expenses_db
. Luego, crea una tabla llamadatbl_expense
con los siguientes campos:id
(INT, PRIMARY KEY, AUTO_INCREMENT)expense_date
(DATE)expense_amount
(DECIMAL)
Paso 2: Estructura del Proyecto
Organiza tu proyecto de la siguiente manera:
expenses-app/
├── inc/
│ ├── header.php
│ ├── footer.php
│ └── db.php
├── css/
│ └── styles.css
├── index.php
└── endpoint/
├── add-expense.php
└── delete-expense.php
Paso 3: Archivo de Conexión a la Base de Datos
Crea el archivo db.php
dentro de la carpeta inc
:
‘ aria-label=»Copy» class=»code-block-pro-copy-button»>
DOCTYPE html>
lang="es">
charset="UTF-8">
name="viewport" content="width=device-width, initial-scale=1.0">
Aplicación de Monitoreo de Gastos Diarios
rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
rel="stylesheet" href="css/styles.css">
footer.php
:
Monitoreo de Gastos Diarios
Gastos
Fecha | Monto | Acción |
---|---|---|
» . $row[‘expense_date’] . « | » . $row[‘expense_amount’] . « | Eliminar |
» aria-label=»Copy» class=»code-block-pro-copy-button»>
php include('inc/header.php'); ?>
php include('inc/db.php'); ?>
class="container">
class="mt-5">Monitoreo de Gastos Diarios
class="modal fade" id="addExpenseModal" tabindex="-1" aria-labelledby="addExpenseLabel" aria-hidden="true">
class="modal-dialog">
class="modal-content">
class="modal-header">
class="modal-title" id="addExpenseLabel">Añadir Gasto
aria-hidden="true">×
class="modal-body">
class="form-group">
type="date" class="form-control" id="expenseDate" name="expense_date" required>
class="form-group">
type="number" class="form-control" id="expenseAmount" name="expense_amount" required>
class="mt-5">
Gastos
class="table table-bordered">
Fecha
Monto
Acción
$stmt = $conn->prepare("SELECT * FROM tbl_expense ORDER BY expense_date");
$stmt->execute();
$result = $stmt->fetchAll();
foreach ($result as $row) {
echo "";
echo "" . $row['expense_date'] . " ";
echo "" . $row['expense_amount'] . " ";
echo 'Eliminar ';
echo " ";
}
?>
Paso 6: Añadir y Eliminar Gastos
Crea los archivos add-expense.php
y delete-expense.php
en la carpeta endpoint
.
add-expense.php
:
$stmt->bindParam(‘:date’, $date);
$stmt->bindParam(‘:amount’, $amount);if ($stmt->execute()) {
header(«Location: ../index.php»);
} else {
echo «Error al añadir el gasto.»;
}
}
?>
» aria-label=»Copy» class=»code-block-pro-copy-button»>
php
include('../inc/db.php');
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$date = $_POST['expense_date'];
$amount = $_POST['expense_amount'];
$stmt = $conn->prepare("INSERT INTO tbl_expense (expense_date, expense_amount) VALUES (:date, :amount)");
$stmt->bindParam(':date', $date);
$stmt->bindParam(':amount', $amount);
if ($stmt->execute()) {
header("Location: ../index.php");
} else {
echo "Error al añadir el gasto.";
}
}
?>
delete-expense.php
:
php
include('../inc/db.php');
if (isset($_GET['id'])) {
$id = $_GET['id'];
$stmt = $conn->prepare("DELETE FROM tbl_expense WHERE id = :id");
$stmt->bindParam(':id', $id);
if ($stmt->execute()) {
header("Location: ../index.php");
} else {
echo "Error al eliminar el gasto.";
}
}
?>
Paso 7: Estilos CSS
Crea un archivo styles.css
en la carpeta css
para agregar estilos personalizados:
body {
background-color: #f8f9fa;
}
.container {
margin-top: 50px;
}
table {
margin-top: 20px;
}
.modal-header {
background-color: #007bff;
color: #fff;
}
Repositorio de la Aplicación
Conclusión
¡Y eso es todo! Ahora tienes una aplicación funcional para el monitoreo de gastos diarios. Este proyecto no solo te ayuda a gestionar tus finanzas personales, sino que también mejora tus habilidades en PHP y MySQL. Recuerda siempre probar y mejorar tu código para adaptarlo a tus necesidades específicas. ¡Feliz codificación!