Wenn du etwas SQL-Kenntnisse hast und/oder du dich auch mit phpMyAdmin zur Erstellung von Tabellen auskennst, dann wäre meiner Meinung die Lösung das mit drei benötigte PlugIn über 2-3 Seiten zu lösen:
- HTML-Clip (Da es noch kein geeignetes Formular-PlugIn gibt)
- PHP-Clip
- SQL-Abfrage
Benötigt wird hierzu natürlich eine SQL-Datenbank. Man kann zwar für diese Lösung auch die SQL-Datenbank verwenden, die auch bereits ProWeb selbst verwendet, aber unter anderem aus Sicherheitsgründen empfehle ich wenn möglich hierzu eine eigene SQL-Datenbank zu verwenden.
Bitte nicht einfach darauf loslegen sondern erst alle notwendigen Schritte komplett durchlesen!
Als erstes muss die Tabelle in einer bereits vorhandenen SQL_Datenbank erstellt werden. Das kann entweder direkt über phpMyAdmin erfolgen oder aber auf der ersten Seite (ich nenne diese Seite Eingabe-Seite) erfolgen. Wenn also das über die Eingabeseite erfolgen soll, dann kann z.B. folgender Code im PlugIn "PHP-Clip" verwendet werden:
CODE:
$host_name = '<Geben Sie hier HOSTNAME ein.>';
$database = '<Geben Sie hier DATENBANKNAME ein.>';
$user_name = '<Geben Sie hier BENUTZERNAME ein.>';
$password = '<Geben Sie hier Ihr Passwort ein.>';
$table= "<Geben Sie hier den Tabellenname ein.>";
$link = new mysqli($host_name, $user_name, $password, $database);
if ($link->connect_error) {
die('<p>Verbindung zum MySQL Server fehlgeschlagen: '. $link->connect_error .'</p>');
} else {
echo '<p>Verbindung zum MySQL Server erfolgreich aufgebaut.</p>';
}
$sql = "CREATE TABLE IF NOT EXISTS $table (
Name varchar(50),
Arbeit text,
Zeit varchar(50)
)";
if ($link->query($sql) === TRUE) {
echo "Tabelle ist erstellt oder vorhanden";
} else {
echo "Error bei Tabellenerstellung: " . $link->error;
}
mysqli_close($link);
Diese Code überprüft, ob die Tabelle vorhanden ist und falls nicht, wird diese mit den angegebenen Spalten im Code erstellt.
z.B. Name, Arbeit, Zeit. Damit man später gezielt auch die Zeilen löschen kann, macht es Sinn als erste Spalte eine ID zu verwenden, die automatisch forlaufend mit Zahl pro Eintrag erstellt wird:
CODE:
$host_name = '<Geben Sie hier HOSTNAME ein.>';
$database = '<Geben Sie hier DATENBANKNAME ein.>';
$user_name = '<Geben Sie hier BENUTZERNAME ein.>';
$password = '<Geben Sie hier Ihr Passwort ein.>';
$table= "<Geben Sie hier Ihr Tabellenname ein.>";
$link = new mysqli($host_name, $user_name, $password, $database);
if ($link->connect_error) {
die('<p>Verbindung zum MySQL Server fehlgeschlagen: '. $link->connect_error .'</p>');
} else {
echo '<p>Verbindung zum MySQL Server erfolgreich aufgebaut.</p>';
}
$sql = "CREATE TABLE IF NOT EXISTS $table (
ID INT AUTO_INCREMENT PRIMARY KEY,
Name varchar(50),
Arbeit text,
Zeit varchar(50)
)";
if ($link->query($sql) === TRUE) {
echo "Tabelle ist erstellt oder vorhanden";
} else {
echo "Error bei Tabellenerstellung: " . $link->error;
}
mysqli_close($link);
Als zweites benötigt man ein Eingabe-Formular auf der Eingabe-Seite. Da das PlugIn "Formular" hierzu nicht geeignet ist, muss ein eigenes Formular im PlugIn "HTML-Clip" mit folgenden Beispielcode erstellen werden:
CODE:
<form method="POST" action="https://www.deinedomain.de/ordner/ausgabe.php" enctype="application/x-www-form-urlencoded">
<div>
<label for="muggelform-2">Name:</label>
<input type="text" id="muggelform-2" name="nname" value="Muggel">
</div>
<div>
<label for="muggelform-3">Arbeit:</label>
<input type="text" id="muggelform-3" name="narbeit" value="Gartenarbeit">
</div>
<div>
<label for="muggelform-4">Zeit:</label>
<input type="text" id="muggelform-4" name="nzeit" value="2 Stunden">
</div>
<div>
<input type="submit" value="Absenden">
<input type="reset">
</div>
</form>
Wichtig ist, dass bei POST der URL-Link der zweiten Seite (ich nenne die Seite Ausgabe-Seite) aufruft. Den URL-Link kann man bei den Seiten-Eigenschften kopieren und hier einfügen. Das Formular entsprechend anpassen.
Auf der Eingabeseite kann auch ein PlugIn "SQL-Abfrage" mit folgenden Code hinzugefügt werde, damit man künftig auch schon vorhandene Einträge sehen kann (oder man ertellt eineneigene dritte Seite hierfür).
CODE:
SELECT `Name`, `Arbeit`, `Zeit`
FROM `<Geben Sie hier den Tabellenname ein.>`
Die Eingabe-Seite ist dann fertig, kommen wir zur Ausgabe-Seite, die auch zuständig ist, das die POST-Daten der Eingabe-Seite in die SQL-Datenbank überträgt bzw. einträgt. Hier wird das PlugIn "PHP-Clip" mit folgenden Beispielcode benötigt:
CODE:
$host_name = '<Geben Sie hier HOSTNAME ein.>';
$database = '<Geben Sie hier DATENBANKNAME ein.>';
$user_name = '<Geben Sie hier BENUTZERNAME ein.>';
$password = '<Geben Sie hier Ihr Passwort ein.>';
$table= "<Geben Sie hier den Tabellenname ein.>";
$link = new mysqli($host_name, $user_name, $password, $database);
if ($link->connect_error) {
die('<p>Verbindung zum MySQL Server fehlgeschlagen: '. $link->connect_error .'</p>');
} else {
echo '<p>Verbindung zum MySQL Server erfolgreich aufgebaut.</p>';
}
$nname = $_POST["nname"];
$narbeit = $_POST["narbeit"];
$nzeit = $_POST["nzeit"];
$number = 0;
/* Einfügen der Daten */
if (!mysqli_query($link, "INSERT INTO " . $table . " VALUES('$nname','$narbeit','$nzeit')"))
die(printf("<H3>Datensatz konnte nicht eingetragen werden: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$number += mysqli_affected_rows($link);
/* Total number of records inserted */
printf("Es wurde " . $number . " Datensatz eingetragen.<BR />");
mysqli_close($link);
Damit man den Eintrag sieht, kann man auch hier ein PlugIn "SQL-Abfrage" mit folgenden Code hinzugefügt werden.
SELECT `Name`, `Arbeit`, `Zeit`
FROM `<Geben Sie hier den Tabellenname ein.>`
Zusätzlich kann man auch darunter noch Buttons setzen, z.B. Zurück zur Eingabe-Seite oder zur dritten Seite wenn eine separate Seite für das PlugIn "SQL-Abfrage" erstellt wurde.
Wenn die Tabelle erstellt ist, kann dann auch wenn gewünscht das PHP-PlugIn-Absatz auf der Eingabeseite ausgeblendet oder gelöscht werden.
Wie man eine Tabelle in der SQL-Datenbank erstellt, gibt es im Internet sehr viele Hilfeseiten und Beispiele. Auch wie man das Ganze erweitern kann.
Das ganze ist natürlich noch ausbaufähig. Auch die Hostverbindung zur SQL-Datenbank könnte man noch aus Sicherheitsgründen mit "include" durchführe, hierzu muss aber manuell eine separate PHP-Seite erstellt werden und per FTP-Programm hochgelden weden.
Ich empfehle auch vorher die Hilfe und die Anleitung von Siquando bzgl. SQL-Abfrage aufmerksam zu lesen.
Viel Spaß beim Weiterbasteln
Mit freundlichen Grüßen
Thomas
Web To Date seit 2004, Siquando Web 12, Pro Web 9, Web Client
Dieser Beitrag wurde bereits 1 mal bearbeitet, zuletzt von »
MuggelClan« (30.03.2025, 23:11)