if($_POST['action'] == 'mark_arrived') { $trip_id = $_POST['trip_id']; // 1. GET CURRENT STOP $stop = $conn->query(" SELECT * FROM trip_stops WHERE trip_id = $trip_id AND status = 'pending' ORDER BY stop_order ASC LIMIT 1 ")->fetch_assoc(); // 2. MARK DONE $conn->query(" UPDATE trip_stops SET status = 'done' WHERE id = ".$stop['id']." "); // 3. CHECK IF ANY LEFT $check = $conn->query(" SELECT COUNT(*) as total FROM trip_stops WHERE trip_id = $trip_id AND status = 'pending' ")->fetch_assoc(); if($check['total'] == 0){ $conn->query(" UPDATE trips SET status = 'completed', end_time = NOW() WHERE id = $trip_id "); } echo "OK"; }