Compare commits

..

13 Commits
v0.1.0 ... main

Author SHA1 Message Date
Valentin dce7330f73 fix(homepage) miss removing previous fix 2024-06-22 21:25:48 +02:00
Valentin db71adc9f2 fix(favicon) new icon 2024-06-22 21:19:32 +02:00
Valentin 9d36d93ad6
Update README.MD 2024-06-22 21:03:33 +02:00
Valentin ee12ab5324 fix(home) displaying users favorites... 2024-06-19 17:51:40 +02:00
Maxime H 9801bc99d9
fix(issues) 2024-06-19 17:49:31 +02:00
Valentin c80e41c953 fix(home) direction for 3 branches 2024-06-19 17:08:35 +02:00
Valentin 8d942f4e78 fix(register) fix check request 2024-06-17 11:28:49 +02:00
Maxime H ca48276b2b Add 3 checks 2024-06-17 11:02:42 +02:00
Valentin 3e4cb6ddd9 feat(logs) displaying logs on account page 2024-06-17 10:59:03 +02:00
Valentin 387bc0a2d7 feat(home) displaying cached stations 2024-06-14 18:02:10 +02:00
Valentin cf5f96f47b feat(stops) caching stops 2024-06-14 16:59:36 +02:00
Valentin 1d20fd7815 feat(admin) user delete & admin creation 2024-06-14 11:29:01 +02:00
Valentin b04fc41ab2 fix(readme) readme logo error 2024-06-14 10:50:09 +02:00
19 changed files with 808 additions and 115 deletions

View File

@ -1,7 +1,7 @@
<br /> <br />
<div id="readme-top" align="center"> <div id="readme-top" align="center">
<a href="https://github.com/itsmrval/subway"> <a href="https://github.com/itsmrval/subway">
<img src="https://raw.githubusercontent.com/itsmrval/subway/main/assets/logo/dark.png" alt="Logo" width="164"> <img src="https://raw.githubusercontent.com/itsmrval/subway/main/public/assets/logo/dark.png" alt="Logo" width="164">
</a> </a>
<h3 align="center">Subway Schedule</h3> <h3 align="center">Subway Schedule</h3>
@ -30,7 +30,7 @@ Note: This app is not intended for production use, but for personal or education
This section list major frameworks/libraries used This section list major frameworks/libraries used
* ![](https://img.shields.io/badge/php-20232A?style=for-the-badge&logo=php) * ![](https://img.shields.io/badge/php-20232A?style=for-the-badge&logo=php)
* ![](https://img.shields.io/badge/SqLite-20232A?style=for-the-badge&logo=mysql) * ![](https://img.shields.io/badge/MySQL-20232A?style=for-the-badge&logo=mysql)
* ![](https://img.shields.io/badge/Bootstrap-20232A?style=for-the-badge&logo=bootstrap) * ![](https://img.shields.io/badge/Bootstrap-20232A?style=for-the-badge&logo=bootstrap)
<p align="right">(<a href="#readme-top">back to top</a>)</p> <p align="right">(<a href="#readme-top">back to top</a>)</p>
@ -69,12 +69,14 @@ Then, create a user with a database
* idfm_api_key with your [IDFM PRIM account](https://prim.iledefrance-mobilites.fr) * idfm_api_key with your [IDFM PRIM account](https://prim.iledefrance-mobilites.fr)
* db_host / db_user / db_password / db_name with mysql infos. * db_host / db_user / db_password / db_name with mysql infos.
6. Run your nginx server 6. Run your nginx server on `/public` directory
<p align="right">(<a href="#readme-top">back to top</a>)</p> <p align="right">(<a href="#readme-top">back to top</a>)</p>
## Known issues
- Some stations with RER A doesnt display timetables
## License ## License

View File

@ -48,9 +48,9 @@ $userDetails = getUserDetails($_SESSION['user_id']);
<?php <?php
echo $_SESSION['message'] ?? ''; echo $_SESSION['message'] ?? '';
unset($_SESSION['message']); unset($_SESSION['message']);
?> ?>
<h2 class="mb-4">Edit Account</h2> <h2 class="mb-4">Edit Account</h2>
<form method="POST" action=""> <form method="POST" action="">
<div class="mb-3"> <div class="mb-3">
<label for="email" class="form-label">Email</label> <label for="email" class="form-label">Email</label>
<input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($userDetails['email']); ?>" placeholder="Enter your email" required> <input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($userDetails['email']); ?>" placeholder="Enter your email" required>
@ -69,5 +69,39 @@ $userDetails = getUserDetails($_SESSION['user_id']);
<small class="form-text text-muted">Leave blank if you do not want to change the password</small> <small class="form-text text-muted">Leave blank if you do not want to change the password</small>
</div> </div>
<button type="submit" class="btn btn-primary">Save Changes</button> <button type="submit" class="btn btn-primary">Save Changes</button>
</form> </form>
</div> </div>
<?php
function getUserLogs($userId) {
global $conn;
try {
$query = $conn->prepare("SELECT logs.ip, logs.date, users.email FROM logs JOIN users ON logs.userId = users.id WHERE logs.userId = ?");
$query->execute([$userId]);
return $query->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
return [];
}
}
$logDetails = getUserLogs($_SESSION['user_id']);
?>
<table class="table mt-4">
<thead>
<tr>
<th>IP</th>
<th>Date</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<?php foreach ($logDetails as $log): ?>
<tr>
<td><?php echo $log['ip']; ?></td>
<td><?php echo $log['date']; ?></td>
<td><?php echo $log['email']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>

View File

@ -8,7 +8,7 @@ if (!isset($_SESSION['is_admin']) || $_SESSION['is_admin'] !== 1) {
function getUsers() { function getUsers() {
global $conn; global $conn;
try { try {
$query = $conn->prepare("SELECT id, email, firstName, lastName FROM users"); $query = $conn->prepare("SELECT id, email, firstName, lastName, is_admin FROM users");
$query->execute(); $query->execute();
return $query->fetchAll(PDO::FETCH_ASSOC); return $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) { } catch (PDOException $e) {
@ -18,37 +18,7 @@ function getUsers() {
$users = getUsers(); $users = getUsers();
function updateUserDetails($userId, $email, $firstName, $lastName, $password = null) { include 'post.php';
global $conn;
try {
if ($password) {
$query = $conn->prepare("UPDATE users SET email = ?, firstName = ?, lastName = ?, password = ? WHERE id = ?");
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
$query->execute([$email, $firstName, $lastName, $hashedPassword, $userId]);
} else {
$query = $conn->prepare("UPDATE users SET email = ?, firstName = ?, lastName = ? WHERE id = ?");
$query->execute([$email, $firstName, $lastName, $userId]);
}
return true;
} catch(PDOException $e) {
return false;
}
}
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['userId'])) {
$password = !empty($_POST['password']) ? $_POST['password'] : null;
$success = updateUserDetails($_POST['userId'], $_POST['email'], $_POST['firstName'], $_POST['lastName'], $password);
if ($success) {
$_SESSION['message'] = '<div class="alert alert-success text-center" role="alert">User updated successfully.</div>';
} else {
$_SESSION['message'] = '<div class="alert alert-danger text-center" role="alert">Failed to update user.</div>';
}
header("Location: " . $_SERVER['REQUEST_URI']);
exit();
}
?> ?>
@ -58,6 +28,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['userId'])) {
unset($_SESSION['message']); unset($_SESSION['message']);
?> ?>
<h2 class="mb-4">Administration</h2> <h2 class="mb-4">Administration</h2>
<form method="POST">
<button type="submit" name="refreshData" class="btn btn-primary">Refresh Data</button>
</form>
<?php include 'users_list.php'; ?> <?php include 'users_list.php'; ?>
</div> </div>
@ -69,5 +42,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['userId'])) {
editUserModal.querySelector('#editEmail').value = event.relatedTarget.getAttribute('data-email'); editUserModal.querySelector('#editEmail').value = event.relatedTarget.getAttribute('data-email');
editUserModal.querySelector('#editFirstName').value = event.relatedTarget.getAttribute('data-firstname'); editUserModal.querySelector('#editFirstName').value = event.relatedTarget.getAttribute('data-firstname');
editUserModal.querySelector('#editLastName').value = event.relatedTarget.getAttribute('data-lastname'); editUserModal.querySelector('#editLastName').value = event.relatedTarget.getAttribute('data-lastname');
editUserModal.querySelector('#editIsAdmin').checked = event.relatedTarget.getAttribute('data-isadmin') === '1';
}); });
</script> </script>

View File

@ -25,6 +25,10 @@
<input type="password" class="form-control" id="editPassword" name="password"> <input type="password" class="form-control" id="editPassword" name="password">
<small class="form-text text-muted">Leave blank if you do not want to change the password</small> <small class="form-text text-muted">Leave blank if you do not want to change the password</small>
</div> </div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="editIsAdmin" name="is_admin">
<label class="form-label" for="editIsAdmin">Admin role</label>
</div>
<button type="submit" class="btn btn-primary">Save Changes</button> <button type="submit" class="btn btn-primary">Save Changes</button>
</form> </form>
</div> </div>

113
components/admin/post.php Normal file
View File

@ -0,0 +1,113 @@
<?php
function updateUserDetails($userId, $email, $firstName, $lastName, $is_admin, $password = null) {
global $conn;
try {
if ($password) {
$query = $conn->prepare("UPDATE users SET email = ?, firstName = ?, lastName = ?, password = ?, is_admin = ? WHERE id = ?");
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
$query->execute([$email, $firstName, $lastName, $hashedPassword, $is_admin, $userId]);
} else {
$query = $conn->prepare("UPDATE users SET email = ?, firstName = ?, lastName = ?, is_admin = ? WHERE id = ?");
$query->execute([$email, $firstName, $lastName, $is_admin, $userId]);
}
return true;
} catch(PDOException $e) {
return false;
}
}
function deleteUser($userId) {
global $conn;
try {
$query = $conn->prepare("DELETE FROM users WHERE id = ?");
$query->execute([$userId]);
return true;
} catch(PDOException $e) {
return false;
}
}
function refreshData() {
global $conn;
try {
$conn->exec("TRUNCATE TABLE stops");
$json = @file_get_contents(__DIR__ .'/../../data/stops.json');
$data = json_decode($json, true);
$filteredData = array_filter($data, function($item) {
return isset($item['fields']['mode']) && $item['fields']['mode'] === 'METRO';
});
$query = $conn->prepare("INSERT INTO stops (stopId, name, lineId) VALUES (?, ?, ?)");
$conn->beginTransaction();
foreach ($filteredData as $item) {
$fields = $item['fields'];
if (isset($fields['id_ref_zda'], $fields['nom_zda'], $fields['indice_lig'])) {
try {
$query->execute([$fields['id_ref_zda'], $fields['nom_zda'], $fields['indice_lig']]);
} catch (PDOException $e) {
}
}
}
$conn->commit();
return true;
} catch (Exception $e) {
return false;
}
}
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['refreshData'])) {
$success = refreshData();
if ($success) {
$_SESSION['message'] = '<div class="alert alert-success text-center" role="alert">Data refreshed successfully.</div>';
} else {
$_SESSION['message'] = '<div class="alert alert-danger text-center" role="alert">Failed to refresh data.</div>';
}
header("Location: " . $_SERVER['REQUEST_URI']);
exit();
}
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['userId'])) {
if (isset($_POST['delete'])) {
if ($_POST['userId'] == $_SESSION['user_id']) {
$_SESSION['message'] = '<div class="alert alert-danger text-center" role="alert">You cannot delete yourself.</div>';
header("Location: " . $_SERVER['REQUEST_URI']);
exit();
}
$success = deleteUser($_POST['userId']);
if ($success) {
$_SESSION['message'] = '<div class="alert alert-success text-center" role="alert">User deleted successfully.</div>';
} else {
$_SESSION['message'] = '<div class="alert alert-danger text-center" role="alert">Failed to delete user.</div>';
}
header("Location: " . $_SERVER['REQUEST_URI']);
exit();
}
$password = !empty($_POST['password']) ? $_POST['password'] : null;
$_POST['is_admin'] = isset($_POST['is_admin']) ? 1 : 0;
$success = updateUserDetails($_POST['userId'], $_POST['email'], $_POST['firstName'], $_POST['lastName'], $_POST['is_admin'], $password);
if ($success) {
$_SESSION['message'] = '<div class="alert alert-success text-center" role="alert">User updated successfully.</div>';
} else {
$_SESSION['message'] = '<div class="alert alert-danger text-center" role="alert">Failed to update user.</div>';
}
header("Location: " . $_SERVER['REQUEST_URI']);
exit();
}
?>

View File

@ -16,15 +16,24 @@
<td><?php echo htmlspecialchars($user['firstName']); ?></td> <td><?php echo htmlspecialchars($user['firstName']); ?></td>
<td><?php echo htmlspecialchars($user['lastName']); ?></td> <td><?php echo htmlspecialchars($user['lastName']); ?></td>
<td> <td>
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#editUserModal" <div class="d-flex">
data-id="<?php echo htmlspecialchars($user['id']); ?>" <button type="button" class="btn btn-primary me-2" data-bs-toggle="modal" data-bs-target="#editUserModal"
data-email="<?php echo htmlspecialchars($user['email']); ?>" data-id="<?php echo htmlspecialchars($user['id']); ?>"
data-firstname="<?php echo htmlspecialchars($user['firstName']); ?>" data-email="<?php echo htmlspecialchars($user['email']); ?>"
data-lastname="<?php echo htmlspecialchars($user['lastName']); ?>"> data-firstname="<?php echo htmlspecialchars($user['firstName']); ?>"
Edit data-lastname="<?php echo htmlspecialchars($user['lastName']); ?>"
</button> data-isadmin="<?php echo htmlspecialchars($user['is_admin']); ?>"
>
Edit
</button>
<form method="POST" action="">
<input type="hidden" name="userId" value="<?php echo htmlspecialchars($user['id']); ?>">
<button type="submit" name="delete" class="btn btn-danger">Delete</button>
</form>
</div>
</td> </td>
</tr> </tr>
</tr>
<?php endforeach; ?> <?php endforeach; ?>
</tbody> </tbody>
</table> </table>

View File

@ -12,8 +12,8 @@ function getStopName($stopId) {
function getFavorites($lineId) { function getFavorites($lineId) {
global $conn; global $conn;
try { try {
$query = $conn->prepare("SELECT stopId FROM favorites WHERE lineId = ?"); $query = $conn->prepare("SELECT stopId FROM favorites WHERE lineId = ? AND userId = ?");
$query->execute([$lineId]); $query->execute([$lineId, $_SESSION['user_id']]);
$result = $query->fetchAll(PDO::FETCH_ASSOC); $result = $query->fetchAll(PDO::FETCH_ASSOC);
return $result; return $result;
@ -29,7 +29,7 @@ $lineIds = $query->fetchAll(PDO::FETCH_COLUMN);
?> ?>
<div class="px-4 my-5 text-center"> <div class="px-4 my-5 text-center">
<h1 class="display-5 fw-bold">Subway Schedule</h1> <h1 class="display-5 fw-bold">Subways</h1>
<div class="col-lg-6 mx-auto"> <div class="col-lg-6 mx-auto">
<p class="lead mb-4">Displaying your favorite stations and lines below</p> <p class="lead mb-4">Displaying your favorite stations and lines below</p>
@ -46,7 +46,6 @@ if (empty($lineIds)) {
} }
?> ?>
<script> <script>
function removeFavorite(stopId, lineId) { function removeFavorite(stopId, lineId) {

View File

@ -13,18 +13,22 @@ $directions = [];
if (isset($data['Siri']['ServiceDelivery']['StopMonitoringDelivery'][0]['MonitoredStopVisit'])) { if (isset($data['Siri']['ServiceDelivery']['StopMonitoringDelivery'][0]['MonitoredStopVisit'])) {
foreach ($data['Siri']['ServiceDelivery']['StopMonitoringDelivery'][0]['MonitoredStopVisit'] as $visit) { foreach ($data['Siri']['ServiceDelivery']['StopMonitoringDelivery'][0]['MonitoredStopVisit'] as $visit) {
$vehicleJourney = $visit['MonitoredVehicleJourney']; $vehicleJourney = $visit['MonitoredVehicleJourney'];
if (strpos($vehicleJourney['OperatorRef']['value'], '.' . $lineId . '.' . $lineId) !== false) { if (strpos($vehicleJourney['OperatorRef']['value'], '.' . $lineId . '.' . $lineId . ':')) {
$direction = $vehicleJourney['DirectionName'][0]['value']; if (isset($vehicleJourney['MonitoredCall']['ExpectedDepartureTime'])) {
$expectedArrival = $vehicleJourney['MonitoredCall']['ExpectedArrivalTime']; $direction = $vehicleJourney['DestinationName'][0]['value'];
$expectedDeparture = $vehicleJourney['MonitoredCall']['ExpectedDepartureTime']; $expectedDeparture = $vehicleJourney['MonitoredCall']['ExpectedDepartureTime'];
$departureTime = date('H:i', strtotime($expectedArrival . ' +2 hours')); $departureTime = date('H:i', strtotime($expectedDeparture . ' +2 hours'));
$currentTime = date('H:i', strtotime('now' . ' +2 hours'));
if (!isset($directions[$direction])) { if ($departureTime > $currentTime) {
$directions[$direction] = []; if (!isset($directions[$direction])) {
} $directions[$direction] = [];
if (count($directions[$direction]) < 2) { }
$directions[$direction][] = $departureTime; if (count($directions[$direction]) < 2) {
$directions[$direction][] = $departureTime;
}
}
} }
} }
} }

View File

@ -12,6 +12,12 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['first_name'] = $user['first_name']; $_SESSION['first_name'] = $user['first_name'];
$_SESSION['is_admin'] = $user['is_admin']; $_SESSION['is_admin'] = $user['is_admin'];
header("Location: /"); header("Location: /");
$log = $conn->prepare("INSERT INTO logs (userId, date, ip) VALUES (:userId, :date, :ip)");
$log->bindParam(':userId', $user['id']);
$log->bindParam(':date', date('Y-m-d-H-i-s'));
$log->bindParam(':ip', $_SERVER['REMOTE_ADDR']);
$log->execute();
} else { } else {
$errorMessage = "Invalid email or password."; $errorMessage = "Invalid email or password.";
} }

View File

@ -1,12 +1,10 @@
<?php <?php
function getStops($line) { function getStops($lineId) {
$json = file_get_contents(__DIR__ . '/../../data/stops.json'); global $conn;
$data = json_decode($json, true); $stmt = $conn->prepare("SELECT * FROM stops WHERE lineId = ?");
$result = array_filter($data, function($item) use ($line) { $stmt->execute([$lineId]);
return $item['fields']['mode'] === 'METRO' && $item['fields']['indice_lig'] === "$line"; return $stmt->fetchAll();
});
return $result;
} }
function isFavorite($userId, $stopId, $lineId) { function isFavorite($userId, $stopId, $lineId) {
@ -16,6 +14,7 @@ function isFavorite($userId, $stopId, $lineId) {
return $stmt->rowCount() > 0; return $stmt->rowCount() > 0;
} }
?> ?>
<div class="px-4 my-5 text-center"> <div class="px-4 my-5 text-center">
@ -29,7 +28,11 @@ function isFavorite($userId, $stopId, $lineId) {
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<?php for ($i = 1; $i <= 14; $i++): ?> <?php
for ($i = 1; $i <= 14; $i++):
$stops = getStops($i);
if (!empty($stops)):
?>
<div class="col-2 mb-3"> <div class="col-2 mb-3">
<div class="card h-100"> <div class="card h-100">
<div class="card-body"> <div class="card-body">
@ -44,9 +47,12 @@ function isFavorite($userId, $stopId, $lineId) {
<button type="button" class="btn-close" data-bs-dismiss="modal"></button> <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<?php $stations = getStops($i); ?>
<div class="row"> <div class="row">
<?php include 'stop_list.php'; ?> <?php
$stops = getStops($i);
include 'stop_list.php';
?>
</div> </div>
</div> </div>
</div> </div>
@ -58,7 +64,7 @@ function isFavorite($userId, $stopId, $lineId) {
<?php if ($i % 6 === 0): ?> <?php if ($i % 6 === 0): ?>
</div><div class="row"> </div><div class="row">
<?php endif; ?> <?php endif; ?>
<?php endfor; ?> <?php endif; endfor; ?>
</div> </div>
</div> </div>
</div> </div>
@ -85,11 +91,11 @@ document.addEventListener('DOMContentLoaded', function() {
if (action === 'add') { if (action === 'add') {
buttonElement.classList.remove('add-stop', 'btn-success'); buttonElement.classList.remove('add-stop', 'btn-success');
buttonElement.classList.add('remove-stop', 'btn-danger'); buttonElement.classList.add('remove-stop', 'btn-danger');
buttonElement.textContent = 'Retirer'; buttonElement.textContent = 'Revoke';
} else { } else {
buttonElement.classList.remove('remove-stop', 'btn-danger'); buttonElement.classList.remove('remove-stop', 'btn-danger');
buttonElement.classList.add('add-stop', 'btn-success'); buttonElement.classList.add('add-stop', 'btn-success');
buttonElement.textContent = 'Ajouter'; buttonElement.textContent = 'Add';
} }
buttonElement.removeEventListener('click', arguments.callee); buttonElement.removeEventListener('click', arguments.callee);
buttonElement.addEventListener('click', arguments.callee); buttonElement.addEventListener('click', arguments.callee);

View File

@ -1,10 +1,8 @@
<div class="row"> <div class="row">
<?php <?php
$half = ceil(count($stations) / 2); $chunks = array_chunk($stops, ceil(count($stops) / 2), true);
$chunks = array_chunk($stations, $half, true);
?>
<?php foreach ($chunks as $chunk): ?> foreach ($chunks as $chunk): ?>
<div class="col-md-6"> <div class="col-md-6">
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
@ -16,12 +14,12 @@
<tbody> <tbody>
<?php foreach ($chunk as $station): ?> <?php foreach ($chunk as $station): ?>
<tr> <tr>
<td><?php echo htmlspecialchars($station['fields']['nom_zda']); ?></td> <td><?php echo htmlspecialchars($station['name']); ?></td>
<td class="text-end"> <td class="text-end">
<?php if (isFavorite($_SESSION['user_id'], $station['fields']['id_ref_zda'], $i)): ?> <?php if (isFavorite($_SESSION['user_id'], $station['stopId'], $i)): ?>
<button class="btn btn-danger remove-stop" data-station-id="<?= $station['fields']['id_ref_zda'] ?>" data-line-id="<?= $i ?>">Retirer</button> <button class="btn btn-danger remove-stop" data-station-id="<?= $station['stopId'] ?>" data-line-id="<?= $i ?>">Revoke</button>
<?php else: ?> <?php else: ?>
<button class="btn btn-success add-stop" data-station-id="<?= $station['fields']['id_ref_zda'] ?>" data-line-id="<?= $i ?>">Ajouter</button> <button class="btn btn-success add-stop" data-station-id="<?= $station['stopId'] ?>" data-line-id="<?= $i ?>">Add</button>
<?php endif; ?> <?php endif; ?>
</td> </td>
</tr> </tr>

View File

@ -1,31 +1,46 @@
<?php <?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST['password'] !== $_POST['confirmPassword']) { if ($_POST['password'] !== $_POST['confirmPassword']) {
$errorMessage = "Password doesnt match"; $errorMessage = "Password doesnt match";
} else { } else {
$query = $conn->prepare("SELECT * FROM users WHERE email = :email"); $query = $conn->prepare("SELECT * FROM users WHERE email = :email");
$query->bindParam(':email', $_POST['email']); $query->bindParam(':email', $_POST['email']);
$query->execute(); $query->execute();
$user = $query->fetch(PDO::FETCH_ASSOC); $user = $query->fetch(PDO::FETCH_ASSOC);
if ($user) { if ($user) {
$errorMessage = "Email already used."; $errorMessage = "Email already used.";
}
if (!isset($errorMessage)) {
$query = $conn->prepare("INSERT INTO users (firstName, lastName, email, password) VALUES (:firstName, :lastName, :email, :password)");
$query->bindParam(':firstName', $_POST['firstName']);
$query->bindParam(':lastName', $_POST['lastName']);
$query->bindParam(':email', $_POST['email']);
$query->bindParam(':password', password_hash($_POST['password'], PASSWORD_DEFAULT));
$query->execute();
header("Location: login.php");
exit();
}
} }
if (!isset($errorMessage)) {
try {
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$query = $conn->prepare("INSERT INTO users (firstName, lastName, email, password) VALUES (:firstName, :lastName, :email, :password)");
$query->bindParam(':firstName', $_POST['firstName']);
$query->bindParam(':lastName', $_POST['lastName']);
$query->bindParam(':email', $_POST['email']);
$query->bindParam(':password', $password);
$query->execute();
$query = $conn->prepare("SELECT COUNT(*) as count FROM users");
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
if ($result['count'] == 1) {
$query = $conn->prepare("UPDATE users SET is_admin = 1 WHERE email = :email");
$query->bindParam(':email', $_POST['email']);
$query->execute();
}
header("Location: login.php");
exit();
} catch (PDOException $e) {
$errorMessage = "Please fill correct values";
}
}
}
} }
?> ?>

View File

@ -3,7 +3,8 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Subway schedules</title> <title>Subway</title>
<link rel="icon" href="assets/logo/favicon.png">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<?php <?php
if (!isset($_SESSION['user_id'])) { if (!isset($_SESSION['user_id'])) {
@ -11,4 +12,4 @@
} }
?> ?>
</head> </head>
<body style="display:block;"> <body style="display:none;">

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@ -11,11 +11,17 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['stopId'], $_POST['lin
try { try {
if ($action === 'add') { if ($action === 'add') {
$stmt = $conn->prepare("INSERT INTO favorites (userId, stopId, lineId) VALUES (?, ?, ?)"); $query = $conn->prepare("SELECT * FROM favorites WHERE userId = ? AND stopId = ? AND lineId = ?");
$stmt->execute([$userId, $stopId, $lineId]); $query->execute([$userId, $stopId, $lineId]);
$existingFavorite = $query->fetch();
if (!$existingFavorite) {
$query = $conn->prepare("INSERT INTO favorites (userId, stopId, lineId) VALUES (?, ?, ?)");
$query->execute([$userId, $stopId, $lineId]);
}
} elseif ($action === 'remove') { } elseif ($action === 'remove') {
$stmt = $conn->prepare("DELETE FROM favorites WHERE userId = ? AND stopId = ? AND lineId = ?"); $query = $conn->prepare("DELETE FROM favorites WHERE userId = ? AND stopId = ? AND lineId = ?");
$stmt->execute([$userId, $stopId, $lineId]); $query->execute([$userId, $stopId, $lineId]);
} }
echo json_encode(['success' => true]); echo json_encode(['success' => true]);
} catch (PDOException $e) { } catch (PDOException $e) {

508
refreshData.log Normal file
View File

@ -0,0 +1,508 @@
[2024-06-14 15:47:35] JSON file read successfully.
[2024-06-14 15:47:35] JSON data decoded successfully.
[2024-06-14 15:47:35] Data filtered. Number of items: 391
[2024-06-14 15:47:35] Database statement prepared.
[2024-06-14 15:47:35] Transaction started.
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44579' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44617' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42587' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58718' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44310' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42237' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44909' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42587' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44909' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58759' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44877' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '473875' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42288' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43493' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44139' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43511' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42237' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44617' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44617' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43138' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '470524' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44962' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42587' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44901' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '473890' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58718' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '473875' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '45676' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44138' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43898' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44273' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44372' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44371' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44828' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44617' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58728' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58578' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58578' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42531' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43969' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42311' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42589' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43310' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44345' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '45056' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43026' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '470519' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42230' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42280' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42288' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '45229' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42587' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '45676' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44075' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43566' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43898' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44236' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44371' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '45193' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58716' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '45314' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44600' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44637' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '462374' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43138' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58578' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '42874' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '462352' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43425' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '43566' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44901' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '44642' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '45100' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '58759' for key 'PRIMARY'
[2024-06-14 15:47:35] SQL Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '473875' for key 'PRIMARY'
[2024-06-14 15:47:35] Transaction committed. Number of items inserted: 304
[2024-06-14 15:48:02] JSON file read successfully.
[2024-06-14 15:48:02] JSON data decoded successfully.
[2024-06-14 15:48:02] Data filtered. Number of items: 391
[2024-06-14 15:48:02] Database statement prepared.
[2024-06-14 15:48:02] Transaction started.
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:02] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] SQL Error: SQLSTATE[HY000]: General error: 1364 Field 'stopId' doesn't have a default value
[2024-06-14 15:48:03] Transaction committed. Number of items inserted: 0
[2024-06-14 15:49:00] JSON file read successfully.
[2024-06-14 15:49:00] JSON data decoded successfully.
[2024-06-14 15:49:00] Data filtered. Number of items: 391
[2024-06-14 15:49:00] Database statement prepared.
[2024-06-14 15:49:00] Transaction started.
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] SQL Error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'lineId' at row 1
[2024-06-14 15:49:00] Transaction committed. Number of items inserted: 379

View File

@ -11,18 +11,32 @@ try {
lastName VARCHAR(50) NOT NULL, lastName VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL,
is_admin BOOLEAN NOT NULL DEFAULT 0 is_admin BOOLEAN NOT NULL DEFAULT 0,
CHECK (LENGTH(firstName) >= 2),
CHECK (LENGTH(lastName) >= 2),
CHECK (email REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$')
)"); )");
$conn->exec("CREATE TABLE IF NOT EXISTS favorites ( $conn->exec("CREATE TABLE IF NOT EXISTS favorites (
id INT AUTO_INCREMENT PRIMARY KEY,
userId INT NOT NULL, userId INT NOT NULL,
stopId INT NOT NULL, stopId INT NOT NULL,
lineId INT NOT NULL, lineId INT NOT NULL,
FOREIGN KEY (userId) REFERENCES users(id) FOREIGN KEY (userId) REFERENCES users(id)
)"); )");
$conn->exec("CREATE TABLE IF NOT EXISTS logs (
userId INT NOT NULL,
date DATETIME NOT NULL,
ip VARCHAR(255) NOT NULL,
FOREIGN KEY (userId) REFERENCES users(id)
)");
$conn->exec("CREATE TABLE IF NOT EXISTS stops (
id INT AUTO_INCREMENT PRIMARY KEY,
stopId INT NOT NULL,
lineId INT NOT NULL,
name VARCHAR(255) NOT NULL
)");
} catch(PDOException $e) { } catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage(); echo "Connection failed: " . $e->getMessage();