Wir haben zur Zeit 4 Brandmeldeanlagen. Wird in den Räumen gearbeitet müssen diese vorübergehend ausgeschaltet werden um einen Fehlalarm zu vermeiden.
Da wir im Schichtdienst arbeiten, kann es sein, dass eine Anlage ausgeschatet ist und diese später von jemand Anderem wieder eingeschaltet werden muss. Damit jeder schnell den Zustand der einzelnen Anlagen erkennen kann, habe ich ein kleines Tool in unsere interne Seite eigearbeitet. Dies zeigt lediglich grafisch den Zustand on(grüner Haken) oder off(rotes X) an.
Zur Zeit frage ich zu jeder Brandmeldeanlage(rz) den letzten Eintrag ab und setze entsprechend die Grafiken.
Ich würde gern die 4 Selects gegen einen austauschen. Allerdings hab ich bislang noch keine Lösung gefunden. Entweder gibt es sie so nicht oder ich komm einfach nicht drauf.
--
-- Tabellenstruktur für Tabelle `brandmeldeanlage`
--
CREATE TABLE IF NOT EXISTS `brandmeldeanlage` (
`id` int(15) NOT NULL AUTO_INCREMENT,
`u_id` int(6) NOT NULL,
`datum` datetime NOT NULL,
`angeordnet` varchar(30) CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
`ausgefuehrt` varchar(30) CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
`rz` set('1','2','3','4') CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
`zustand` enum('on','off') CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
`bemerkung` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=118 ;
Ich hab einmal die ersten 30 Einträge mitgenommen. Leider fehlen hierbei Einträge zu rz3 und rz4. Namen wurden auf Buchstaben reduziert. Die Einträge zu den einzelnen Anlagen gehören selten zusammen, da innerhalb der Räume selten gleichzeitig gearbeitet wird. Es können Tage, Wochen oder auch Monate keine Einträge zu einer Anlage gemacht werden.
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Hat da jemand für mich den entscheidenen Hinweis zur richtigen Lösung?
Deine Tabelle ist ein Tagebuch, Du suchst aber die aktuelle Stellung von vier Schaltern. Natürlich kannste mit einigen Klimmzügen (4* SELECT oder ein SELECT mit subselects) aus dem Tagebuch die jünsten Schalterstellungen rausfischen - ich vertrete allerdings die Auffassung, daß Daten, die häufig nur gelesen werden, schnell verfügbar sein sollten/könnten.
Ansatzpunk ist das Script, welches das "Schalter an/aus" Formular auswertet. Dieses Script könnte die sich daraus ergebende aktuelle Lage separat speichern. Geeignete Kandidaten wären: http://www.php.net/var_export
PHP-Code:
<?php # Auswertung des Formulars und schreiben des Tagebuchs
include 'schalter.php'; for ($nummer = 1; $nummer <= 4; $nummer++) $schalter[$nummer] = empty($_POST['schalter_' . $nummer]) ? false : true;
@vt1816 Muß ich mal schauen ob ich damit mein gewünschtes Ergebnis bekomme.
@meikel
Wenn ich dich richtig verstanden habe, würdest du die Nutzung einer einfachen Datei vorziehen, in der lediglich die einzelnen RZ mit dem aktuellen Zustand hinterlegt sind.
Sprich ich hätte eine einfache und schnelle Ausgabe bei der permanent, vorhandenen Übersicht über die Anlagen ohne eine DB Verbindung mit dem/den entsprechenden Select/s nutzen zu müssen.
Müsste dafür aber nach einem Eintrag in die DB dies auch in die Datei schreiben.
Da innerhalb von ca. einem Jahr gerade einmal 111 Einträge gemacht wurden und die Seite selbst pro Tag mehrmals von unterschiedlichen Personen aufgerufen wird, scheint dies dann wohl doch der leichtere Weg zu sein.
Wenn ich dich richtig verstanden habe, würdest du die Nutzung einer einfachen Datei vorziehen, in der lediglich die einzelnen RZ mit dem aktuellen Zustand hinterlegt sind.
Ja. Noch schneller wären nur noch semphor files:
on -> file erzeugen
off -> file löschen
Zitat:
Müsste dafür aber nach einem Eintrag in die DB dies auch in die Datei schreiben.
Korrekt. Ein
PHP-Code:
ignore_user_abort(true);
verhindert den vorzeitigen Scripttod bevor das file komplettiert wurde.