Auswahl im Options Feld anzeigen lassen mit DB Sqlite3 und PHP
Hallo zusammen,
Ich Versuche eine web Anwendung zu schreiben wo jeder seine Einsatz Tage eintragen kann über selecd Option und diese in der web Anwendung gespeichert wird wo jeder der die Anwendung aufruft sehen kann wo noch was frei ist oder der jenige sein Eintrag ändern kann.
Mein Problem ist, das ich es irgendwie nicht hinbekomme, dass die daten in die DB gespeichert werden und es kommt immer wieder der Fehler
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
Wäre super, wenn ihr mir helfen könnt oder Tipps geben könnt.
Vielen Dank im Voraus!
vg
Kratos
mein Code :
Ich Versuche eine web Anwendung zu schreiben wo jeder seine Einsatz Tage eintragen kann über selecd Option und diese in der web Anwendung gespeichert wird wo jeder der die Anwendung aufruft sehen kann wo noch was frei ist oder der jenige sein Eintrag ändern kann.
Mein Problem ist, das ich es irgendwie nicht hinbekomme, dass die daten in die DB gespeichert werden und es kommt immer wieder der Fehler
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
Wäre super, wenn ihr mir helfen könnt oder Tipps geben könnt.
Vielen Dank im Voraus!
vg
Kratos
mein Code :
<?php
error_reporting(E_ALL);
ini_set('display_errors',1)
// Initialisiere die SQLite-Datenbank
$db = new SQLite3('calendar.db');
// Erstelle die Tabelle shared_data, falls sie nicht existiert
$db->exec('CREATE TABLE IF NOT EXISTS shared_data (id INTEGER PRIMARY KEY AUTOINCREMENT, day TEXT, date TEXT, person TEXT, auto TEXT)');
// Funktion zum Speichern der ausgewählten Daten in der SQLite-Datenbank
function saveSelectedData($day, $date, $person, $auto, $db) {
$stmt = $db->prepare('INSERT INTO shared_data (day, date, person, auto) VALUES (:day, :date, :person, :auto)');
$stmt->bindValue(':day', $day, SQLITE3_TEXT);
$stmt->bindValue(':date', $date, SQLITE3_TEXT);
$stmt->bindValue(':person', $person, SQLITE3_TEXT);
$stmt->bindValue(':auto', $auto, SQLITE3_TEXT);
$stmt->execute();
}
// Überprüfe, ob ein POST-Request erfolgt ist
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Überprüfe, ob Daten gesendet wurden
if (isset($_POST['day']) && isset($_POST['date']) && isset($_POST['person']) && isset($_POST['auto'])) {
// Speichere die ausgewählten Daten
saveSelectedData($_POST['day'], $_POST['date'], $_POST['person'], $_POST['auto'], $db);
}
}
// Funktion zum Laden der gemeinsam genutzten Daten aus der SQLite-Datenbank
function loadSharedData($db) {
$result = $db->query('SELECT * FROM shared_data');
$data = [];
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$data[] = $row;
}
return $data;
}
// Funktion zum Laden der CSV-Daten
function loadCSVData() {
$csvData = [];
$csvFile = fopen('dropdown_data.csv', 'r');
while (($line = fgetcsv($csvFile, 0, ';')) !== FALSE) {
$csvData[] = ['person' => $line[0], 'auto' => $line[1]];
}
fclose($csvFile);
return $csvData;
}
// Rufe die Funktion zum Laden der gemeinsam genutzten Daten aus der SQLite-Datenbank auf
$sharedData = loadSharedData($db);
// Rufe die Funktion zum Laden der CSV-Daten auf
$csvData = loadCSVData();
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css"> <!-- Stelle sicher, dass du den richtigen Dateinamen verwendest -->
<title>Monatskalender</title>
</head>
<style>
body {
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f4;
}
.row-container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.day-container {
max-width: 900px;
margin: 15px auto;
background-color: #fff;
border-radius: 15px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
overflow: hidden;
text-align: center; /* Zentriert den Text */
}
.header {
font-size: 36px;
font-weight: 600;
text-align: center;
color: #333;
padding: 20px 0;
background-color: #3498db;
color: #fff;
margin: 0;
border-radius: 10px 10px 0 0;
}
.day-info {
margin-left: 40%;
width: auto;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
text-align: center; /* Zentriert den Text */
}
.row {
padding: 10px;
text-align: center;
background-color: #fff;
display: flex;
flex-direction: column;
}
.row h3 {
color: #333;
}
.dropdown {
width: calc(50% - 15px);
padding: 6px;
margin-bottom: 10px;
box-sizing: border-box;
}
@media only screen and (max-width: 600px) {
.row {
grid-template-columns: repeat(2, 1fr);
}
.dropdown {
width: 100%;
}
.day-info {
margin-left: 40%;
width: auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
text-align: center; /* Zentriert den Text */
}
}
</style>
<body>
<div class="header"> plan </div>
<div class="row-container">
<?php
setlocale(LC_TIME, 'de_DE');
$currentDate = strtotime("first day of this month");
$currentMonth = date("n", $currentDate);
while (date("n", $currentDate) == $currentMonth) {
// Nur Montage erhalten die KW-Anzeige
if (date("N", $currentDate) == 1) {
echo "<div class='day-container'>";
echo "<p class='day-info'>" . date("l", $currentDate) . "<br>" . date("d-m-Y", $currentDate) . "<br>KW " . date("W", $currentDate) . "</p>";
for ($i = 1; $i <= 5; $i++) {
echo "<div class='row'>";
echo "<form method='post'>";
echo "<select name='person' class='dropdown'>";
foreach ($csvData as $entry) {
echo "<option value='{$entry['person']}'>{$entry['person']}</option>";
}
echo "</select>";
echo "<select name='auto' class='dropdown'>";
foreach ($csvData as $entry) {
echo "<option value='{$entry['auto']}'>{$entry['auto']}</option>";
}
echo "</select>";
echo "<input type='hidden' name='day' value='" . date("j", $currentDate) . "'>";
echo "<input type='hidden' name='date' value='" . date("d-m-Y", $currentDate) . "'>";
echo "<input type='hidden' name='fieldNumber' value='{$i}'>";
echo "</form>";
echo "</div>"; // Schließe die row
}
echo "</div>"; // Schließe die day-container
} else {
// Überspringe Samstag und Sonntag
if (date("N", $currentDate) <= 5) {
echo "<div class='day-container'>";
echo "<p class='day-info'>" . date("l", $currentDate) . "<br>" . date("d-m-Y", $currentDate) . "</p>";
for ($i = 1; $i <= 5; $i++) {
echo "<div class='row'>";
echo "<form method='post'>";
echo "<select name='person' class='dropdown'>";
foreach ($csvData as $entry) {
echo "<option value='{$entry['person']}'>{$entry['person']}</option>";
}
echo "</select>";
echo "<select name='auto' class='dropdown'>";
foreach ($csvData as $entry) {
echo "<option value='{$entry['auto']}'>{$entry['auto']}</option>";
}
echo "</select>";
echo "<input type='hidden' name='day' value='" . date("j", $currentDate) . "'>";
echo "<input type='hidden' name='date' value='" . date("d-m-Y", $currentDate) . "'>";
echo "<input type='hidden' name='fieldNumber' value='{$i}'>";
echo "</form>";
echo "</div>"; // Schließe die row
}
echo "</div>"; // Schließe die day-container
}
}
// Nächster Tag
$currentDate = strtotime("+1 day", $currentDate);
if (date("N", $currentDate) == 5) {
// Neue Zeile nach Freitag
echo "<br>";
}
}
?>
</div>
</body>
</html>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8117156586
Url: https://administrator.de/contentid/8117156586
Ausgedruckt am: 21.11.2024 um 19:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
"ich versuche ganze Zeit in den Options Feldern eingetragen daten anzeigen zu lassen, die ich auswähle, egal von welchen gerät und wie viele User das machen.
Wenn du die Seite aufrufst oder den Browser schließt oder aktualisierst müssen die Einträge die du oder ein anderer ausgewählt hat zu sehen sein und veränderbar sein, dass alles muss nicht in Echtzeit sein."
Ich raff noch nichtmal was du uns damit sagen willst.
Was hast du vor?
Grüße
"ich versuche ganze Zeit in den Options Feldern eingetragen daten anzeigen zu lassen, die ich auswähle, egal von welchen gerät und wie viele User das machen.
Wenn du die Seite aufrufst oder den Browser schließt oder aktualisierst müssen die Einträge die du oder ein anderer ausgewählt hat zu sehen sein und veränderbar sein, dass alles muss nicht in Echtzeit sein."
Ich raff noch nichtmal was du uns damit sagen willst.
Was hast du vor?
Grüße