j5c5: HTML Eingabe auf Monitor Anzeigen

Beitrag lesen

Für den Server dachte ich an eine Installation von xampp.  Ist das O.K. ?

Als Testumgebung ja; als Produktivumgebung würde ich an deiner Stelle kein XAMPP benutzten, weil das zu wenig auf Sicherheit getrimmt ist.

Für jedes Gebäude würde ich eine Eigne HTML Seite Erstellen wo die Spalten und Zeilen der Tabelle fest hinterlegt sind.

Möglich, du könntest das aber auch mit Parametern lösen, z.B. verwaltung.php?geb=1 bzw. ?geb=2, dann musst du nicht zwei verschieden Versionen von einem recht ähnlichen Programm pflegen.

Das z.b. Gebäude 1 nicht die Daten in der Zeile von Gebäude 3 Speichert.

Ich würde mehrere Tabellen (Gebäude1, Gebäude2, usw.) nach dem Muster erzeugen: Zeitstempel - Anzahl1 - Anzahl2

1425214674  - 4       - 1

Und dort dann pro Aktualisierung einen neuen Eintrag hinzufügen und bei der Ausgabe der aktuellen Zahlen nur den neusten Eintrag (höchsten Zeitstempel) auswählen. Dann hättest du außerdem die Möglichkeit, Statistiken zu erzeugen oder alte Zahlenstände wiederherzustellen.

Ich habe mal zum Üben von Prepared Statements eine Kleidungsverwaltung geschrieben, vielleicht hilft dir das Beispiel weiter (Kann man bestimmt noch optimieren ;-) ):

[code lang=php]<?php
header("Content-Type: text/html; charset=utf-8");
setlocale(LC_TIME, "de_DE");

$dbconfig['host'] = 'DB-HOST';
$dbconfig['user'] = 'DB-USER';
$dbconfig['base'] = 'DB-NAME';
$dbconfig['pass'] = 'DB-PASS';
$dbconfig['char'] = 'utf8';

try {
    $pdo = new PDO('mysql:host='.$dbconfig['host'].';dbname='.$dbconfig['base'].';charset='.$dbconfig['char'].';', $dbconfig['user'], $dbconfig['pass']);
}
catch(PDOException $e) {
    exit("<!doctype html>\n<html>\n <head>\n  <title>Datenbank-Fehler</title>\n </head>\n <body>\n  <h1>Verbindung zur Datenbank konnte nicht aufgebaut werden!<br />Unable to connect to Database.</h1>\n </body>\n</html>");
}
?>

<!doctype html> <html> <head>  <title>Sockenverwaltung</title>  <meta charset="utf-8">  <style type="text/css">

  body {color:black; background-color:white; font-family:sans-serif;}
   input[type="number"] {width:3em;}
   h1 {text-align:center;}
   hr {height:0px; border:1px solid gray;}
   .center {text-align:center; font-style:italic;}

</style>  <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body>  <h1>Sockenverwaltung</h1>  <hr />

<?php
$namen = array(
	"Socken",
	"Unterhosen",
	"Unterhemden",
	"Schlafanzug-Garnituren",
	"T-Shirts",
	"Lange Hosen",
	"Kurze Hosen",
	"Sweatshirts",
	"Trockentücher",
	"Waschlappen",
	"Handtücher",
	"Putzlappen",
	"Spüllappen");
$eintraege = array(
	"socken",
	"unterhosen",
	"unterhemden",
	"schlafanzuege",
	"tshirts",
	"langehosen",
	"kurzehosen",
	"sweatshirts",
	"trockentuecher",
	"waschlappen",
	"handtuecher",
	"putzlappen",
	"spuellappen");
$count = 0;
// Datenbank aktualisieren:
if((bool)$_POST["sent"] == true)
{
$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($ip);
$time = time();

$stmt = $pdo->prepare("INSERT INTO sockenverwaltung (socken, unterhosen, unterhemden, schlafanzuege, tshirts, langehosen, kurzehosen, sweatshirts, trockentuecher, waschlappen, handtuecher, putzlappen, spuellappen, ip, host, zeit) VALUES (:socken, :unterhosen, :unterhemden, :schlafanzuege, :tshirts, :langehosen, :kurzehosen, :sweatshirts, :trockentuecher, :waschlappen, :handtuecher, :putzlappen, :spuellappen, :ip, :host, :time)");
$array = array(
    ':socken' => (int)$_POST["socken"],
    ':unterhosen' => (int)$_POST["unterhosen"],
    ':unterhemden' => (int)$_POST["unterhemden"],
    ':schlafanzuege' => (int)$_POST["schlafanzuege"],
    ':tshirts' => (int)$_POST["tshirts"],
    ':langehosen' => (int)$_POST["langehosen"],
    ':kurzehosen' => (int)$_POST["kurzehosen"],
    ':sweatshirts' => (int)$_POST["sweatshirts"],
    ':trockentuecher' => (int)$_POST["trockentuecher"],
    ':waschlappen' => (int)$_POST["waschlappen"],
    ':handtuecher' => (int)$_POST["handtuecher"],
    ':putzlappen' => (int)$_POST["putzlappen"],
    ':spuellappen' => (int)$_POST["spuellappen"],
    ':ip' => $ip,
    ':host' => $host,
    ':time' => $time
);
$stmt->execute($array);
}

$stmt = $pdo->query('SELECT * FROM sockenverwaltung ORDER BY id DESC LIMIT 1');
$row = $stmt->fetch();
?>
[code lang=html] <div style="margin:auto; width:260px;">
  <form action="" method="POST">
  <input type="hidden" name="sent" value="1">

<?php // Einträge anzeigen: $count = 0;

while($count < count($namen)) { echo "\n  <input type="number" min="0" step="1" name="".$eintraege[$count]."" id="".$count."" value="".$row[$eintraege[$count]].""> \n  <label for="".$count."">".$namen[$count]."</label>\n  <br />\n"; $count++; if($count == 4 or $count == 6) { echo "  <br />\n"; } } ?>[/code]   <br />   <input type="reset" value="Zurücksetzen">   <input type="submit" value="Ändern">   </form>  </div>  <hr />

<?php
$datum = date("d.m.Y",$row["zeit"]);
$uhrzeit = date("H:i",$row["zeit"]);
echo "<p class=\"center\">Zuletzt geändert: ".$datum." ".$uhrzeit."</p>";
?>

</body> </html>[/code]