paginas publicas restantes
This commit is contained in:
@@ -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";
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user