Hallo zusammen,
ich programmiere derzeit ein größeres Projekt zur Eingabe von Kundendaten und deren Auswertung.
Ich verwende kein Templatesystem.
Einfach gesagt ist derzeit der Aufbau einer jeden Seite.
-Beginnt mit einem session_start()
-Verbindungsaufbau zur Datenbank, wobei dieser über eine gesonderte Datei durchgeführt und diese dann über require eingebunden wird. Als nächstes
-Festlegung der Variablen für INSERT und UPDATE mit den jeweiligen $_POST Variablen
-Prüfung, welche Buttons betätigt wurden, per IF-Abfrage
-Einbindung des Menüs. Ebenfalls über eine externe PHP-Datei
-HTML-Code
Für mich stellt sich die Frage, ob es eine besser Lösung gibt für die Datenbankbefehle, die IF-Abfragen für die Buttons und den Aufbau der Seiten. Ist es evtl. besser die Datenbankbefehle aller Seiten auf eine Seite auszulagern und diese bei Bedarf zu laden, wenn das möglich ist. Gibt es eine bessere Lösung für die Buttons als diese über eine IF-Abfrage zu prüfen. Derzeit sieht die Programmierung in etwa so aus:
if ($\_POST['kundenauswahl'])
{
$\_SESSION['kundenauswahl'] = $\_POST['kundenauswahl'];
}
if ($\_POST['loeschen'])
{
#SQL-Befehl fuer Datensatz loeschen
$mysqli-\>query("DELETE FROM persdaten WHERE id\_vn = '{$\_SESSION['kundenauswahl']}';");
$mysqli-\>query("DELETE FROM arbeitgeber WHERE id\_vn = '{$\_SESSION['kundenauswahl']}';");
unset ($\_SESSION['kundenauswahl']);
}
if ($\_POST['speichern'])
{
#Prüfung, ob Pflichtfelder ausgefühllt sind
if (empty($\_POST['anrede'])) $fehler .= "Sie haben keine Anrede ausgewählt.
";
if (empty($\_POST['name'])) $fehler .= "Sie haben keinen Namen eingegeben.
";
if (empty($\_POST['vorname'])) $fehler .= "Sie haben keinen Vornamen eingegeben.
";
if (empty($\_POST['gebdatum'])) $fehler .= "Sie haben kein Geburtsdatum eingegeben.
";
#Wenn id\_vn und gruppe leer sind, wurde Kunde und Gruppe noch nicht angelegt und es werden die Daten neu eingespei�t
if (empty($\_SESSION['kundenauswahl']) AND empty($\_SESSION['gruppe']) AND empty($fehler))
{
$mysqli-\>query($insertpersdaten);
echo $mysqli-\>error;
#Auto\_Increment Wert in Variable speichern, um letzten Datensatz ermitteln zu k�nnen
$\_SESSION['kundenauswahl']=$mysqli-\>insert\_id;
#kundenauswahl in gruppe speichern, um die Gruppenkennung hinterlegen zu k�nnen
$\_SESSION['gruppe']=$\_SESSION['kundenauswahl'];
#Gruppenkennung wird jedem Kunden zugewiesen, da in Auswahlliste nach der Gruppenkennung gesucht wird
$mysqli-\>query("UPDATE persdaten SET gruppe = '{$\_SESSION['gruppe']}' WHERE id\_vn='{$\_SESSION['kundenauswahl']}';");
}
#Wenn kundenauswahl leer ist, wurde Kunde noch nicht angelegt und es werden die Daten neu eingespei�t
#Wenn gruppe mit Wert gef�llt ist, wird neu eingegebener Kunde zu bestehender Gruppe hinzugef�gt
elseif (empty($\_SESSION['kundenauswahl']) AND !empty($\_SESSION['gruppe']) AND empty($fehler))
{
$mysqli-\>query($insertpersdaten);
echo $mysqli-\>error;
#Auto\_Increment Wert in Variable speichern, um letzten Datensatz ermitteln zu k�nnen
$\_SESSION['kundenauswahl']=$mysqli-\>insert\_id;
#Gruppenkennung wird jedem Kunden zugewiesen, da in Kundenauswahl nach der Gruppenkennung gesucht wird
$mysqli-\>query("UPDATE persdaten SET gruppe = '{$\_SESSION['gruppe']}' WHERE id\_vn='{$\_SESSION['kundenauswahl']}';");
}
#Wenn kundenauswahl gef�llt ist, wurde Kunde schon angelegt und die eingegebenen Daten werden nur aktualisiert
elseif (!empty($\_SESSION['kundenauswahl']) AND empty($fehler))
{
$mysqli-\>query($updatepersdaten);
echo $mysqli-\>error;
}
#Bei unvöllständig ausgefüllten Feldern, wird Fehlermeldung generiert
elseif (!empty($fehler))
{
echo $fehler;
}
#Arbeitgeberdaten einspeichern. Erst ab hier, damit der Wert für die Spalte id\_vn in der Tabelle arbeitgeber eindeutig ist
$mysqli-\>query("INSERT INTO arbeitgeber
(id\_ag, id\_vn, agname, agstrasse, agplz, agort, agtel)
VALUES(
NULL,
'{$\_SESSION['kundenauswahl']}',
'{$mysqli-\>real\_escape\_string($\_POST['agname'])}',
'{$mysqli-\>real\_escape\_string($\_POST['agstrasse'])}',
'{$mysqli-\>real\_escape\_string($\_POST['agplz'])}',
'{$mysqli-\>real\_escape\_string($\_POST['agort'])}',
'{$mysqli-\>real\_escape\_string($\_POST['agtel'])}')
ON DUPLICATE KEY UPDATE
agname = '{$mysqli-\>real\_escape\_string($\_POST['agname'])}',
agstrasse = '{$mysqli-\>real\_escape\_string($\_POST['agstrasse'])}',
agplz = '{$mysqli-\>real\_escape\_string($\_POST['agplz'])}',
agort = '{$mysqli-\>real\_escape\_string($\_POST['agort'])}',
agtel = '{$mysqli-\>real\_escape\_string($\_POST['agtel'])}';");
echo $mysqli-\>error;
}
Die Eingabefelder sind auf den jeweiligen Seiten unterschiedich benannt. Ich weiß nicht, ob dass noch so gemacht wird bzw. empfehlenswert ist. Ein Eingabefeld heißt z.B. bruttoeinkommen, ein anderes telmobil, titel usw. Entsprechend heißen auch die Datenfelder in der Datenbank. Das machte es war anfangs übersichtlich, macht aber eine Programmierung für eine Eingabeprüfung jetzt schwerer. Ist diese Benennung sinnvoll? Wie benennt ihr die Eingabefelder auf der Seite und die Datenfelder in den Datenbanken?
Und ob es nicht besser ist eine Seitenvorlage zu erstellen, die immer sichtbar ist und bei der sich nur die Eingabemasken etc. ändern anstelle jede Seite nach o.g. Aufbau komplett zu programmieren?
Ich möchte aber kein Templatesystem etc. verwenden, sondern Lösungen, die sich rein über PHP/HTML lösen lassen.
Ich bin Anfänger und für jeden Tipp dankbar!