fixed multiple things
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
// Abilita visualizzazione errori PHP (solo per debug, disabilita in produzione)
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
// Includi configurazione database
|
||||
require_once('include/headscript.php');
|
||||
|
||||
// Inizializza log
|
||||
$logFile = 'update_expired_lessons_log.txt';
|
||||
$logMessage = "Esecuzione script aggiornamento lezioni scadute: " . date('Y-m-d H:i:s') . "\n";
|
||||
|
||||
// Connessione al database
|
||||
$conn = new mysqli($servername, $username, $password, $dbname);
|
||||
if ($conn->connect_error) {
|
||||
$logMessage .= "Connessione al database fallita: " . $conn->connect_error . "\n";
|
||||
file_put_contents($logFile, $logMessage, FILE_APPEND);
|
||||
die("Connessione al database fallita: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
$logMessage .= "Database connesso: $dbname\n";
|
||||
|
||||
// Query per trovare ordini scaduti
|
||||
$query_orders = "SELECT idorderbook, order_id, expireon
|
||||
FROM orderbook
|
||||
WHERE expireon < NOW()";
|
||||
$result_orders = $conn->query($query_orders);
|
||||
|
||||
if (!$result_orders) {
|
||||
$logMessage .= "Errore nella query degli ordini scaduti: " . $conn->error . "\n";
|
||||
file_put_contents($logFile, $logMessage, FILE_APPEND);
|
||||
$conn->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
$logMessage .= "Ordini scaduti trovati: " . $result_orders->num_rows . "\n";
|
||||
|
||||
$updated_lessons = 0;
|
||||
$processed_orders = array();
|
||||
|
||||
// Aggiorna le lezioni per ogni ordine scaduto
|
||||
while ($order = $result_orders->fetch_assoc()) {
|
||||
$idorderbook = $order['idorderbook'];
|
||||
$processed_orders[] = $idorderbook;
|
||||
$logMessage .= "Elaborazione ordine: idorderbook = $idorderbook, expireon = {$order['expireon']}\n";
|
||||
|
||||
// Query per aggiornare le lezioni non completate e non perse
|
||||
$update_query = "UPDATE bookingclass
|
||||
SET expirylesson = 'Y'
|
||||
WHERE idorder = ?
|
||||
AND status != 'completed'
|
||||
AND lostlesson != 'Y'
|
||||
AND expirylesson != 'Y'";
|
||||
$stmt = $conn->prepare($update_query);
|
||||
if (!$stmt) {
|
||||
$logMessage .= "Errore preparazione query per idorderbook $idorderbook: " . $conn->error . "\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
$stmt->bind_param("i", $idorderbook);
|
||||
$stmt->execute();
|
||||
|
||||
$affected_rows = $stmt->affected_rows;
|
||||
$updated_lessons += $affected_rows;
|
||||
$logMessage .= "Lezioni aggiornate per idorderbook $idorderbook: $affected_rows\n";
|
||||
|
||||
$stmt->close();
|
||||
}
|
||||
|
||||
$logMessage .= "Totale lezioni aggiornate: $updated_lessons\n";
|
||||
$logMessage .= "Ordini elaborati: " . implode(", ", $processed_orders) . "\n";
|
||||
|
||||
// Scrivi il log
|
||||
file_put_contents($logFile, $logMessage, FILE_APPEND);
|
||||
|
||||
// Chiudi la connessione
|
||||
$conn->close();
|
||||
Reference in New Issue
Block a user