Somania: HTML Eingabe auf Monitor Anzeigen

Hallo Gemeinde.

Ich suche aktuell nach einer Lösung, mit HTML, php oder Datenbank oder wie auch immer.

Mein vorhaben.

Ich habe 20 Gebäude in denen ein Thin Client eine Browserseite Anzeigen soll.  Dauerhaft.

Die Bediener können dort z.b. Anzahl der Arbeiter in ein Feld eintragen und bestätigen.

Diese Eintragungen sollen im Hauptgebäude auf einem Thin Client angezeigt werden.

Eine Liste z.b.  Gebäude 20      Geb. 01       u.s.w                  Arbeiter 15    Arbeiter 2     u.s.w

Aus dem Hauptgebäude soll es möglich sein die Zähler wieder auf 0 zu setzen

Ich dachte bei dem ganzen an einen Apache Server und eine Mysql Datenbank.

Aber dazu benötige ich Hilfe von euch...

Danke

  1. Hi Somania,

    das ist relativ einfach zu lösen: Du erstellst ein HTML-Dokument mit einem Forumlar, das deine Anforderungen erfüllt und speicherst die an den Server gesendeten Eingaben mittels PHP in einer MySQL-Datenbank.

    Viel Erfolg Julius

    1. Hallo  Julius,

      ok, so was dachte ich mir.

      Das Erstellen einer HTML Seite ist kein Problem.

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

      Auf dem Server würde ich eine MySQL-Datenbank erstellen mit jeweils 3 spalten und 3o Zeilen.

      Die Bediener sollen jeweils 2 Meldungen eintragen können.

      z.b.

      Gebäude - Anzahl - Anzahl

      Gebäude1 - 4     -  1 Gebäude2 - 1     -  0 Gebäude1 - 5     -  4 GebäudeX - 4     -  3

      Was mir noch nicht klar ist.

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

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

      Gruß   Somania

      1. 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]

  2. Hallo Gemeinde. Aber dazu benötige ich Hilfe von euch...

    An welcher Stelle hakt es denn? Oftmals ist es nur eine Kleinigkeit.

    MfG

    1. Hallo,

      zuerst werde ich einen XAMPP Installieren.  Und eine Test HTML Seite erstellen und eine Tabelle anlegen.

      Aktuell ist mir noch nicht ganz klar wie die Daten von HTML Seite über PHP Script in meine Tabelle kommt....

      Gruß

      1. Aktuell ist mir noch nicht ganz klar wie die Daten von HTML Seite über PHP Script in meine Tabelle kommt....

        Vielleicht hilft dir hier diese Anleitung: http://www.schattenbaum.net/php/variable2.php

        1. Hallo,

          danke für den Link. Das hilft mir.

          Aktuell habe ich xammp Installiert. Ich habe eine Datenbank Erstellt.

          Jetzt will ich dort eine Tabelle erstellen.

          Beim Erstellen ist eine Angabe von Spalten ( 4 ) vorhanden.

          Wenn ich nach dem Vorschlag von euch gehen würde benötige ich 3 Spalten.

          Timestap Personal1 Personal2

          Danach kann ich die Namen der Felder Eintragen.

          Aber was muss ich für Typ, Länge/Wert, Standart, Kollation, Atribute, Null, Index

          hinterlegen.

          Danke

          1. Aber was muss ich für Typ, Länge/Wert, Standart, Kollation, Atribute, Null, Index

            Typ -> Typ der Variable (int für ganze Zahlen, text für Text) Standard -> Ob ein Standardwert vorgegeben werden soll Kollation -> Zeichensatz (Wenn deine ganze Anwendung UTF-8 nutzt, solltest du auch in der Datenbank UTF-8 nehmen, z.B. utf8_general_ci (Case-insensitivity = Groß- und Kleinschreibung wird beim Vergleichen nicht berücksichtigt („HALLO“ ist gleich „hallo“))) Attribute und Null -> leer lassen Index -> Legt fest, dass diese Spalte Index der Tabelle sein soll. Jeder Datensatz kann über einen eindeutigen Wert identifiziert werden.

            Siehe: http://www.schattenbaum.net/php/anlegen.php

            1. Hallo

              Kollation -> Zeichensatz (Wenn deine ganze Anwendung UTF-8 nutzt, solltest du auch in der Datenbank UTF-8 nehmen, z.B. utf8_general_ci (Case-insensitivity = Groß- und Kleinschreibung wird beim Vergleichen nicht berücksichtigt („HALLO“ ist gleich „hallo“)))

              Nein. Die Kollation gibt nicht die verwendete Zeichenkodierung (nicht den „Zeichensatz“; wundert mich echt, dass der Fauxpas unbemerkt blieb) an. Mit ihr wird festgelegt, wie eine alphabetische Sortierung der Inhalte der Spalte unter Berücksichtigung etwaiger sprachlicher Besonderheiten (z.B. diakritische Zeichen) erfolgen wird.

              Die beim lesen und schreiben von Daten zu benutzende Zeichenkodierung wird beim Herstellen der Verbindung für die Verbindung ausgehandelt (mit einer Funktion der Programmiersprache oder als Query (z.B. SET NAMES utf-8)).

              Tschö, Auge

              --
              Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war. Terry Pratchett, "Wachen! Wachen!" ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
              1. Tach!

                Kollation -> Zeichensatz (Wenn deine ganze Anwendung UTF-8 nutzt, solltest du auch in der Datenbank UTF-8 nehmen, z.B. utf8_general_ci (Case-insensitivity = Groß- und Kleinschreibung wird beim Vergleichen nicht berücksichtigt („HALLO“ ist gleich „hallo“)))

                Nein. Die Kollation gibt nicht die verwendete Zeichenkodierung (nicht den „Zeichensatz“; wundert mich echt, dass der Fauxpas unbemerkt blieb) an. Mit ihr wird festgelegt, wie eine alphabetische Sortierung der Inhalte der Spalte unter Berücksichtigung etwaiger sprachlicher Besonderheiten (z.B. diakritische Zeichen) erfolgen wird.

                Ja, zu dem, was du über die Kollation schreibst. Aber die Angabe in einem Feld ist kombiniert mit einer Angabe zur Kodierung. Die Kollation ist von der Kodierung abhängig. Zum Beispiel ergibt irgendwas asiatisches als Kollation zusammen mit Latin1 als Kodierung keinen Sinn.

                Die beim lesen und schreiben von Daten zu benutzende Zeichenkodierung wird beim Herstellen der Verbindung für die Verbindung ausgehandelt (mit einer Funktion der Programmiersprache oder als Query (z.B. SET NAMES utf-8)).

                Ja, und MySQL kodiert gegebenenfalls von und zu dieser Verbindungskodierung um, wenn in den Feldern andere Kodierungsangaben stehen.

                dedlfix.