Infosystem automatisiert

posted in: Allgemein | 0

Was ist die Idee?

Daten die in einer CSV Tabelle sind sollen auf einer Webseite dargestellt werden.

Was wird benötigt?

  • Ubuntu
  • xibo

Wie Realisieren wir das?

Als erstes Ubuntu mit SQL und Apache installieren, Anleitung hierzu gibt es im Internet, deswegen gehe ich hier nicht genauer darauf ein.

PHP Seite erstellen. Beispiel

<?php
// Ersteller Enrico
// 2019-11-08
// some script settings
$page_title = «Infosystem»;
// get the $id value from GET string
$id = intval($_GET[‹id›]);

/*
escape to HTML
notice we use almost the exact same HTML and CSS as before,
changed slightly to allow for PHP dynamic content
*/
?>

<html>
<head>
<title><?php echo $page_title; ?></title>

<script language=»JavaScript» type=»text/javascript»>
var Step = 1;
function lauf() {
var y = window.pageYOffset;
window.scrollBy(0, Step);
if (y == window.pageYOffset) {
window.scrollTo(0,0);
}
window.setTimeout(«lauf()», 50);
}
function start() {
window.setTimeout(«lauf()», 50);
}
</script>
</head>

<body onLoad=»start()»>
</script>

<style type=»text/css»>
body { color: #000; background: #000000; font-family: sans-serif; }
p { color: #000000; background: #000000; text-align: center; }
th { color: #000000; background: #000000; text-align: center; font-size:32px; text-align: left;}
tr { color: #ffffff; background: #787878; text-align: center; font-size:40px; text-align: left;}
table {
border-collapse: separate;
border-spacing: 0;
}
th,
td {
padding: 10px 15px;
}
thead {
background: #395870;
color: #000000;
}
tbody tr:nth-child(even) {
background: #383838;
}
td {
border-bottom: 1px solid #cecfd5;
border-right: 1px solid #000000;
}
td:first-child {
border-left: 1px solid #000000;
}

</style>


</head>
<body>


<?php
header(‹Content-Type: text/html; charset=ISO-8859-1›);

?>
<?php
$db = new mysqli(‹localhost›, ‹benutzername›, ‹password›, ‹Infosystem›);
if (mysqli_connect_errno()) {
die (‹Konnte keine Verbindung zur Datenbank aufbauen:
‹.mysqli_connect_error().'(‹.mysqli_connect_errno().›)›);
}

// $sql = ‹SELECT * FROM raumbelegung ORDER BY RAUM›;
//$sql = «SELECT KUNDEN_NAME, VA_NAME, VA_AUSSCHILDERUNG, ANLASS_AUSSCHILDERUNG, ANLASS_ART, RAUM, START_ZEIT, END_ZEIT FROM raumbelegung ORDER BY RAUM ASC»;
//Anzeigen von nur Raum A216
//$sql = «SELECT * FROM raumbelegung WHERE RAUM LIKE ‹A110′»;
//Sortieren von Raum
//$sql = «SELECT * FROM raumbelegung ORDER BY RAUM»;
//Anzeigen von 10 eintraegen
//$sql = «SELECT * FROM raumbelegung LIMIT 4, 20»;
//$sql = «SELECT RAUM, KUNDEN_NAME, ANLASS_ART FROM raumbelegung WHERE RAUM LINKE ‹Olea› OR KUNDEN_NAME ‹ZZ Hotel Seedamm Plaza›;
//$sql = «SELECT * FROM raumbelegung WHERE KUNDEN_NAME NOT LIKE ‹ZZ Hotel Seedamm Plaza%'»;
//$sql = «SELECT * FROM raumbelegung WHERE ANLASS_ART NOT LIKE ‹Raum blockiert%'»;
//$sql = «SELECT * FROM raumbelegung ORDER BY ANLASS_ART DESC»; Anlassname wird noch mitgeteilt
//$sql = «SELECT * FROM raumbelegung ORDER BY RAUM ASC»;
$sql = «SELECT * FROM raumbelegung WHERE (anlass_art NOT LIKE ‹Raum blockiert%›) AND (va_name NOT LIKE ‹Anlassname wird noch mitgeteilt%›) AND (anlass_art NOT LIKE ‹Techniker Check%›) AND (anlass_art NOT LIKE ‹Kuenstlergarderobe%›) AND (kunden_name NOT LIKE ‹ZZ Hotel Seedamm Plaza%›) AND (kunden_name LIKE ‹%_%›) AND (anlass_art NOT LIKE ‹Gruppenraum%›)
AND
(va_name NOT LIKE ‹Lieferung%›)
AND
(va_name NOT LIKE ‹Radio%›)
AND
(anlass_art NOT LIKE ‹Anlieferung%›)
AND
(anlass_art NOT LIKE ‹Einrichten%›)
AND
(va_name NOT LIKE ‹Anlassname wird noch mitgeteilt%›)
AND
(anlass_art NOT LIKE ‹Casino%›)
AND
(anlass_art NOT LIKE ‹Techniker Check%›)
AND
(anlass_art NOT LIKE ‹Kuenstlergarderobe%›)
AND
(anlass_art NOT LIKE ‹Liftszenario%›)
AND
(anlass_art NOT LIKE ‹Raum blockiert%›)
AND
(anlass_art NOT LIKE ‹Aufbau%›)
AND
(anlass_art NOT LIKE ‹Imbiss%›)
AND
(anlass_art NOT LIKE ‹Gruppenraum%›)
AND
(anlass_art NOT LIKE ‹Einrichten%›)
AND
(anlass_art NOT LIKE ‹Anlieferung%›)
AND
(anlass_art NOT LIKE ‹Aufbau%›)
AND
(anlass_art NOT LIKE ‹Catering%›)
AND
(anlass_art NOT LIKE ‹Ausstellung%›)
AND
(anlass_art NOT LIKE ‹%hrung›)
AND
(anlass_art NOT LIKE ‹Garderobe%›)
AND
(anlass_art NOT LIKE ‹%nstlergarderobe›)
AND
(anlass_art NOT LIKE ‹Liftszenario%›)
AND
(anlass_art NOT LIKE ‹Schlummertrunk%›)
AND
(anlass_art NOT LIKE ‹Registration%›)
AND
(anlass_art NOT LIKE ‹Parking%›)
AND
(anlass_art NOT LIKE ‹Umbestuhlung%›)
AND
(anlass_art NOT LIKE ‹Kurze Pause%›)
AND
(anlass_art NOT LIKE ‹Take Away%›)
AND
(anlass_art NOT LIKE ‹Techniker Check%›)
AND
(anlass_art NOT LIKE ‹Kaffee%›)
AND
(anlass_art NOT LIKE ‹Vekehrs-und Parkdienst%›)
ORDER BY start_zeit ASC ;»;
$erg = $db->query($sql);
if (!$erg){
die (‹Etwas stimmte mit dem Query nicht: ‹.$db->error);
}
?>

<table>
<?php
while ($row = $erg->fetch_assoc()) {
?>
<tr>
<td><img src=»<?=$row[ ‹va_ausschilderung› ];?>» alt=»<?=$row[ ‹va_ausschilderung› ];?>»style=»width: 300px»></td>
<td width=»25%»><?php echo $row[‹kunden_name›]; ?></td>
<td width=»25%»><?php echo $row[‹va_name›]; ?></td>
<td width=»15%»><?php echo $row[‹anlass_art›]; ?></td>
<td width=»15%»><?php echo $row[‹raum›]; ?></td>
<td width=»1%»><?php echo $row[’start_zeit›]; ?></td>
<td width=»1%»><?php echo $row[‹end_zeit›]; ?></td>
</tr>



<?php
}
?>
</table>
<?php
$erg->close();
?>
</body>
</html>

Erstellen der CSV Tabelle am Ort /var/www/php72/mount/copy/raumbelegung.csv

kunden_name;va_id;va_name;va_ausschilderung;anlass_id;anlass_name;anlass_ausschilderung;logo;anlass_art;start_datum;start_zeit;end_zeit;raum
ZZ Kunden;70046;was für ein Anlass – Verkauf nur nach Rücksprache;;708105;Raum blockiert;;;Raum blockiert;16.11.2021;06:00;23:00;Ort des Anlasses

Erstellen der Datenbank im SQL

USE Infosystem;
DROP TABLE IF EXISTS raumbelegung;
CREATE TABLE raumbelegung (id INT AUTO_INCREMENT PRIMARY KEY,registrierungsdatum TIMESTAMP,kunden_name VARCHAR(33) NOT NULL, va_id VARCHAR(5) NOT NULL, va_name VARCHAR(48) NOT NULL, va_ausschilderung tinyblob, anlass_id VARCHAR(26) NOT NULL, anlass_name VARCHAR(26) NOT NULL, anlass_ausschilderung VARCHAR(30) NOT NULL, logo VARCHAR(30) NOT NULL, anlass_art VARCHAR(30) NOT NULL, start_datum VARCHAR(30) NOT NULL, start_zeit VARCHAR(30) NOT NULL, end_zeit VARCHAR(30) NOT NULL, raum VARCHAR(30) NOT NULL);
LOAD DATA LOCAL INFILE ‹/var/www/php72/mount/copy/raumbelegung.csv› INTO TABLE raumbelegung FIELDS TERMINATED BY ‹;› IGNORE 1 ROWS (kunden_name, va_id, va_name, va_ausschilderung, anlass_id, anlass_name, anlass_ausschilderung, logo, anlass_art, start_datum, start_zeit, end_zeit, raum );

Cronjob erstellen für Datenimport aus dem Verzeichnis

Befehl mysql

Eingabe des Befehls

USE Infosystem;
DROP TABLE IF EXISTS raumbelegung;
CREATE TABLE raumbelegung (id INT AUTO_INCREMENT PRIMARY KEY,registrierungsdatum TIMESTAMP,kunden_name VARCHAR(33) NOT NULL, va_id VARCHAR(5) NOT NULL, va_name VARCHAR(48) NOT NULL, va_ausschilderung tinyblob, anlass_id VARCHAR(26) NOT NULL, anlass_name VARCHAR(26) NOT NULL, anlass_ausschilderung VARCHAR(30) NOT NULL, logo VARCHAR(30) NOT NULL, anlass_art VARCHAR(30) NOT NULL, start_datum VARCHAR(30) NOT NULL, start_zeit VARCHAR(30) NOT NULL, end_zeit VARCHAR(30) NOT NULL, raum VARCHAR(30) NOT NULL);
LOAD DATA LOCAL INFILE ‹/var/www/php72/mount/copy/raumbelegung.csv› INTO TABLE raumbelegung FIELDS TERMINATED BY ‹;› IGNORE 1 ROWS (kunden_name, va_id, va_name, va_ausschilderung, anlass_id, anlass_name, anlass_ausschilderung, logo, anlass_art, start_datum, start_zeit, end_zeit, raum );

Conjob für Datei Umbenennung wenn die Datei von einem System erstellt wird

sudo ls -1t /var/www/php72/mount/*Raumbelegung*| head -1 | xargs -I {} sudo mv {} /var/www/php72/mount/copy/raumbelegung.csv

Xibo System Link