Hallo liebes Forum,
ich habe mal wieder ein Problem, das ich ohne Eure Hilfe nicht lösen kann.
Die besondere Problematik besteht darin, dass ich die Server/Client-Problematik auszuhebeln versuche, was natürlich nicht geht.
Ich habe eine Mitarbeiter-Tabelle (mySQL). Alle Mitarbeiter sollen in Tabellenform ausgegeben werden. In die Ausgabe möchte ich drei weitere Datenfelder einfügen, die ich dann über die Datensatzgrenzen hinweg mit Zeiteingaben füllen möchte. Nach vollständiger Eingabe möchte ich die Daten in einer Schleife in eine neue Tabelle: Zeitmeldungen (mySQL) schreiben.
Eine Lösung für jeden einzelnen Mitarbeiter habe ich, das ist mir aber zu umständlich.
So wie ich mir das vorstelle geht es nicht, vielleicht hat jemand einen kreativen Lösungsansatz, der die Problematik löst?
Nachtrag von mir:
Heute morgen ist mir eingefallen, dass die Problematik vermutlich ganz einfach durch EXCEL zu lösen ist.
Ein Upload einer CSV-Datei in die MySQL-DB sollte dann die Lösung sein.
Ich werde mich jetzt mal an die EXCEL-Lösung machen. Trotzdem bin mal gespannt, ob jemand eine Lösung mit PHP und MySQL finden wird.
Danke für Eure Hilfe.
Script-1:
<html>
<?php
header('Content-Type: text/html; charset=utf-8');
?>
<head>
<link rel="stylesheet" type="text/css" href="../formatierung.css">
<script type="text/javascript">
</script>
<body>
<h2>Zeiterfassung - Datum und Mitarbeiter auswählen dann die "Daten senden"</h2>
</p>
<form action = "ze_verwalten_b.php" method = "post">
<?php
SESSION_START();
/* Verbindung aufnehmen */
INCLUDE "c:/xampp/htdocs/zeitmeldung/oeffnen_datenbank.php";
$name_monat= array("Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember",);
$tag = date("d");
$monat = date("m");
$jahr = date("Y");
echo "<select name=\"tag\" size=\"1\">\n";
for($a=1; $a<32; $a++)
{if($tag == $a)
{ echo str_pad($tag, 2 ,'0', STR_PAD_LEFT);
echo "<option selected>".$tag."</option>\n"; }
else
{ echo "<option>".$a."</option>\n"; }
}
echo "</select>\n";
echo "<select name=\"monat\" size=\"1\">\n";
for($a=0; $a<12; $a++)
{if($monat-1 == $a)
{ echo "<option selected>".$name_monat[$a]."</option>\n";
}
else
{ echo "<option>".$name_monat[$a]."</option>\n"; }
}
echo "</select>\n";
echo "<select name=\"jahr\" size=\"1\">\n";
for($a=$jahr; $a>$jahr-5; $a--)
{if($jahr == $a)
{ echo "<option selected>".$a."</option>\n";
$_SESSION['jahr'] = $jahr;}
else
{ echo "<option>".$a."</option>\n"; }
}
echo "</select>\n";
echo "<br />";
echo "<br />";
echo "<br />";
// Tabellen-Beginn
echo "\n\n<table border>"
. "<tr>"
. "<td>Mitarbeiter</td>"
. "<td>Aktiv-KZ</td>"
. "<td>Nachname</td>"
. "<td>Vorname</td>"
. "<td>Zeit-von</td>"
. "<td>Zeit-bis</td>"
. "<td>Pause-Min</td>"
. "</tr>";
// SQL-Abfrage ausführen
$res = mysqli_query($con, "select * from mitarbeiter where ma_aktivkz = 1 order by ma_nname, ma_vname");
while ($dsatz = mysqli_fetch_assoc($res))
{
$id = $dsatz['ma_id'];
echo "\n\n<tr>"
. "<td><input name='m1[$id]' value='" . $dsatz['ma_id'] . "' size='10' /></td>"
. "<td><input name='m2[$id]' value='" . $dsatz['ma_aktivkz'] . "' size='10' /></td>"
. "<td><input name='m3[$id]' value='" . $dsatz['ma_nname'] . "' size='20' /></td>"
. "<td><input name='m4[$id]' value='" . $dsatz['ma_vname'] . "' size='20' /></td>"
. "<td><input name='m5[$id]' value='" . "' size='10' /></td>"
. "<td><input name='m6[$id]' value='" . "' size='10' /></td>"
. "<td><input name='m7[$id]' value='" . "' size='10' /></td>";
echo "</tr>";
}
// Tabellenende
echo "</table>";
?>
<p><input type="submit" value="gesendet" /></p>
</form>
</body>
</html>
Alles anzeigen
Script-2:
<?php
/* Aktion ausführen */
if(isset($_POST['gesendet'])) // das funktioniert nicht
{
/*
die AUSGEGEBENEN Formulardaten (per POST) müssen um weitere Eingabe-Tabellenfelder ergänzt werden.
eine zeilenbezogene Verarbeitung habe ich schon entwickelt - ich möchte aber ALLE ausgegebenen Zeilen
über die Zeilen hinweg ergänzen und dann in einer Schleife in eine neue Tabelle schreiben.
/*
echo "gesendete Daten weiterverarbeiten";
echo "<br />";
}
else
{
echo "keine gesendeten Daten";
echo "<br />";
}
?>
Alles anzeigen
Hier noch eine grafische Darstellung: