Forum: PC-Programmierung Benötige Hilfe bei Web App Erstellung


von pierre (Gast)


Lesenswert?

Hallo Zusammen,

ich brauch mal wieder eure Unterstützung!
Es geht um folgendes, ich habe eine Web App erstellt.
Ziel ist es 1. das Datum einzugeben, 2. über ein Select Feld eine 
Station auszuwählen, 3. über Auswahlbuttons verschiedene Eingaben  zu 
machen.

Für das jeweilige Datum und die jeweilige Station sollen alle Eingaben 
der Auswahlbuttons in einer Datenbank gespeichert werden.

Zb Datum 17.06.2019 Station 3 (5x Auswahlbutton1, 3x Auswahlbutton3 usw)
Dann für jede Station bzw Datum eine neue Auswahl speichern.

Dazu habe ich bereits folgendes geschrieben (Html, PHP, SQL) :
Ich würde mich über euer Feedback und Hinweise freuen!
Vielen Dank im Voraus!

<html>

<?php
 include ("index.php");
 ?>

<head>
<title>Test WebApp</title></head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <html manifest="kaeltewagen.manifest">

<body>
<form method="post">
  <label>
     Datum:<br/>
    <input name="date" type="date" placeholder="Datum" style="height: 
50px; width: 100px;"/>
  </label>
  <label>
    <p> <form action="#"> </p>
    <label>Station:<br>
      <select name="top5" style="height: 50px; width: 100px;"/>
        <option>Station 1 </option>
        <option>Station 2 </option>
        <option>Station 3 </option>
        <option>Station 4 </option>
        <option>Station 5 </option>
      </select>

    </label>
  </form>
</main>
  <br/><br/><br/>
  <input type="button" name="button[Option1]" value="Auswahl 1" 
style="height: 50px; width: 100px;"/>
  <input type="button" name="button[Option2]" value="Auswahl 2" 
style="height: 50px; width: 100px;"/>
  <input type="button" name="button[Option3]" value="Auswahl 3" 
style="height: 50px; width: 100px;"/>
  <input type="button" name="button[Option4]" value="Auswahl 4" 
style="height: 50px; width: 100px;"/>
  <input type="button" name="button[Option5]" value="Auswahl 5" 
style="height: 50px; width: 100px;"/>

</form>



</body>
</html>

PHP Datei :

<?php
  $Option1   = +isset($_POST["button"]["Option1"]);
  $Option2   = +isset($_POST["button"]["Option2"]);
  $Option3  = +isset($_POST["button"]["Option3"]);
  $Option4  = +isset($_POST["button"]["Option4"]);
  $Option5  = +isset($_POST["button"]["Option5"]);

  $db = new PDO(
    'mysql:host=hostname;dbname=db',
    'username',
    'password'
  );

  if(($Option1 || $Option2 || $Option3 || $Option4 || $Option5 ) && 
@$_POST['name'] && @$_POST['date']){
    $sth = $dbh->prepare("INSERT INTO button_counter (name, datum, 
Option1, Option2, Option3, Option4, Option5) VALUES (?,?,?,?,?,?,?)");
    $sth->execute([$_POST['name'],$_POST['date'],$Option1,$Option2,$Option3, 
$Option4,$Option5]);
  }

  $counts = $db->execute("SELECT name, count(Option1), count(Option2), 
count(Option3), count(Option4), count(Option5) FROM button_counter GROUP 
BY name");
?>

SQL Datei :

CREATE TABLE button_counter (
  id INTEGER PRIMARY KEY,
  name VARCHAR(64) NOT NULL,
  datum DATE NOT NULL,
  savedate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  Option1 BIT NOT NULL DEFAULT 0,
  Option2 BIT NOT NULL DEFAULT 0,
  Option3 BIT NOT NULL DEFAULT 0,
  Option4 BIT NOT NULL DEFAULT 0
  Option5 BIT NOT NULL DEFAULT 0
);

von pierre (Gast)


Lesenswert?

Da das ganze auch Offline möglich sein soll bzw die Eingabedaten auch im 
Offlinebetrieb gespeichert werden sollen, habe ich mir folgendes 
überlegt :

Manifest Datei :

CACHE MANIFEST
index.php
schema.sql
WebApp_Test.html

.htaccess Datei:

AddType text/cache-manifest .manifest

Die eingegebenen Daten (Datum, Station, jeweilige Auswahl) sollen 
gespeichert werden und dann in die Datenbank geladen werden sobald das 
Gerät (Tablet/Laptop/usw) online geht.

Alle Dateien (Html, SQL, PHP, Manifest Datei, .htacsess) sind im selben 
Ordner gespeichert.

Die php Datei ist in der Html Datei eingebunden, müssen die anderen 
Dateien auch in der Html Datei eingebunden werden?

von Bettlerwabwehr 2.0 (Gast)


Lesenswert?

pierre schrieb:

Man kann auch auf dem Client die Daten ablegen, die sind dann nat. nur 
bei ihm verfügbar aber wenn das nur für eine Person sein soll ist das 
die einfachere Variante, brauchst kein Netz und kein MySQL.

Such mal nach:
Webstorage, sowas wie bessere Cookies, ohne Index.
IndexedDB oder WebSQL

WebSQL ist glaube ich inzw. veraltet sollte aber je nach Browser immer 
noch funktionieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.