paginas publicas restantes

This commit is contained in:
Brisa
2026-06-30 14:58:51 -03:00
parent 9f7ccf208b
commit 47ef868129
4 changed files with 394 additions and 0 deletions
+83
View File
@@ -0,0 +1,83 @@
<?php
include("db.php");
$nombre_archivo = "productos.csv";
$archivo = fopen($nombre_archivo, "r");
if ($archivo !== FALSE) {
fgetcsv($archivo, 1000, ";");
$importados = 0;
$errores = 0;
$fila = 1;
while (($datos = fgetcsv($archivo, 1000, ";")) !== FALSE) {
$fila++;
//CAPTURA DE DATOS
$id = trim($datos[0]);
$nombre = trim($datos[1]);
$precio = trim($datos[2]);
$categoria = trim($datos[3]);
$imagen = trim($datos[4]);
$activo = isset($datos[5]) ? trim($datos[5]) : 1;
$stock = (isset($datos[6]) && trim($datos[6]) !== '') ? trim($datos[6]) : 0;
// --- VALIDACIONES DE DATOS ---
if (empty($nombre) || empty($categoria)) {
echo "Error en fila $fila: El nombre o la categoría están vacíos.<br>";
$errores++;
continue;
}
if (!is_numeric($precio) || (float)$precio <= 0) {
echo "Error en fila $fila: El precio '$precio' no es un número válido.<br>";
$errores++;
continue;
}
if (!is_numeric($stock) || (int)$stock < 0) {
echo "Error en fila $fila: El stock '$stock' debe ser un número entero mayor o igual a cero.<br>";
$errores++;
continue;
}
$stock = (int)$stock;
$stmt = $conexion->prepare("
INSERT INTO productos (id, nombre, precio, categoria, imagen, activo, stock)
VALUES (?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
nombre = VALUES(nombre),
precio = VALUES(precio),
categoria = VALUES(categoria),
imagen = VALUES(imagen),
activo = VALUES(activo),
stock = VALUES(stock)
");
$stmt->bind_param("isdssii", $id, $nombre, $precio, $categoria, $imagen, $activo, $stock);
if ($stmt->execute()) {
$importados++;
} else {
echo "Error de BD en fila $fila: " . $conexion->error . "<br>";
$errores++;
}
}
fclose($archivo);
echo "<hr>";
echo "<h3>Resumen del proceso:</h3>";
echo "Productos procesados (Nuevos o Actualizados): $importados <br>";
if ($errores > 0) {
echo "Filas con errores: $errores <br>";
}
echo "<br><a href='productos.php'>Ver catálogo en la web</a>";
} else {
echo "No se pudo encontrar el archivo $nombre_archivo";
}
?>