• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Datum in HTML-Tabelle ändern und in mariaDB speichern?

Status
Für weitere Antworten geschlossen.

anbad

Neues Mitglied
Hallo,
ich will mir eine Art Vokabeltrainer bauen. Soweit habe ich es geschafft, dass mir meine Homepage die Vokabel/Regeln aus mariaDB anzeigt, welche <= heutiges Datum fällig sind.
Jetzt müsste ich natürlich auch das Datum anpassen können, aka wann erneut gezeigt werden soll. Ich würde nicht einmal sagen, dass eine Datumsauswahl angezeigt werden soll. Sondern vielmehr eine Auswahl zwischen "Zeige: heute, morgen, in drei Tagen, in einer Woche, in einem Monat, in drei Monaten, nie".

Wie macht man sowas? HTML in Verbindung PHP?

Wo sollte ich anfangen zu denken, zu suchen und zu lernen, wie man sowas macht?

Ich brauche mal Ansätze, bevor ich mich von vorneweg verrenne.

Ich kann nur ein bißl html und php. Braucht man java dazu?

Anbei Beispiel meiner Abfragetabelle (noch nicht wirklich formatiert).

Viele Grüße
 

Anhänge

  • beispiel.png
    beispiel.png
    31,5 KB · Aufrufe: 5
Werbung:
HTML in Verbindung PHP?
Ja
Wo sollte ich anfangen zu denken, zu suchen und zu lernen, wie man sowas macht?
Du solltest die Grundlagen in Sachen PHP und MySQL lernen
Ich brauche mal Ansätze, bevor ich mich von vorneweg verrenne.
Ohne zu wissen, wie deine Datenbanktabellen aussehen und wie die Auswahl des Datums getätigt werden soll, kann man dazu nichts sagen.
Ich kann nur ein bißl html und php. Braucht man java dazu?
Wie schon erwähnt, Grundlagen lernen. Und Java brauchst du sowieso nicht, du meinst JavaScript. Aber das brauchst du auch nicht unbedingt.
 
Werbung:
Meine Probleme:
1) Na ja, ich denke, in die Tabelle beim Datum müsste jeweils ein Button, der dann ein Auswahlmenü öffnet: Heute, Morgen, nächste Woche. Die Tabelle kann aber je nach Tag verschieden viele Zeilen haben. Also muss die Buttonerstellung, wie auch ja bereits die Zeilen der Tabelle, dynamisch erfolgen.
Ich habe schon mal einfache Buttons genutzt, aber noch nicht in eine Tabelle eingefügt.
2) Ich kann mir im Moment nicht vorstellen, wie dann der php-Code im Zusammenspiel mit den Buttons in den Zeilen mit dem gerade gedrückten Zeileantrag verknüpft wird.
Schreiben in sql-Datenbank ist dann kein Problem, wenn die Variablen Werte erhalten haben.

zu 2) Und damit ich jetzt nicht ewig mit einer Buttonlösung arbeite, die für mein Vorhaben ungeeignet ist, dachte ich, ich frage gleich mal, um den richtigen Start zu schaffen: Wie löst man 1) damit 2) dann später 1) nutzen kann?

Das ist mein jetziger .php-Code, den ich per include auf meine Webseite einbinde. Ich denke, hier müsste der Button wohl dazu. Vlt. müsste der jeweilige Button jeweils den key aus der sql-Datenbank zugewiesen werden, Damit später php weiß, Welcher sql-Eintrag gemeint ist, d.h. geändert werden soll?:

Code:
          <table>
              <?php
              echo "<div class='ueberschrift'> <p1>" . $betreff . "</p1></div><br>";
                
                $con = mysqli_connect("localhost","website_mk","Z8yC{b&w)/u4pk","db_website");
                $con -> set_charset("utf8");
                
                //echo"Test2";
                
                if (mysqli_connect_errno()) {
                  echo "Failed to connect to MySQL: " . mysqli_connect_error();
                  exit();
                }

                $sql =  "SELECT * FROM `table_grammatik` WHERE grammatik_faelligkeit <= CURRENT_DATE";

                $result = mysqli_query($con, $sql);
                //Teste ob Abfrage klappte: Achtung, ist schwarze Farbe
                //print_r($result);
                echo "<tr><th>Regel</th><th>Grad</th><th>Fällig</th></tr>";
                while($row = $result-> fetch_assoc()) {
                      if ($row["grammatik_beispiel"] != "") {$Beispieltext = "Beispiel: <br>" . nl2br($row["grammatik_beispiel"]);}
                      echo "<tr><td>" . "[Nr. " . $row["grammatik_key"] . "] " . nl2br($row["grammatik_regel"]) . "<br> <br>" . $Beispieltext;
                      echo "<td>" . $row["grammatik_schwierigkeit"] . "</td>";
                      echo "<td>" . $row["grammatik_faelligkeit"] . "</td></tr>";
                      $Beispieltext = "";
                }
                // Leeren Speicher
                $uebersicht = "";
                mysqli_free_result($result);

                mysqli_close($con);
              ?>
          </table>
 
Was soll jetzt passieren, wenn man z. B. "in drei Tagen" ausgewählt hat?
Es sollen immer die Einträge '<= aktuelles Datum' angezeigt werden.

Man ist also gezwungen jeden Tage über z.B. das Dropdown ein neues Datum für jeden gerade gezeigten Eintrag zu vergeben. Also beispielsweise: "zeige in drei Tagen erneut" oder "zeige in 6 Monaten erneute" oder "zeige niemals mehr".
 
Den Key kannst Du z. B. als data-Attribut im Select ablegen.
Hallo, habe jetzt gerade nochmals rumgespielt.

Habe mir überlegt, würde die Eingabe mit mehreren Button machen. Ist im Handling schneller, und da in der Tabellenzelle ohne viel Platz, finde ich es so ganz gut.

Aber wie bekomme ich an "/action_trainer.php" den Key des jeweiligen sql-Eintrags mitübertragen?

Ich glaube, die Buttons funktionieren so. Ich habe noch keine "/action_trainer.php". Nächster Schritt erst.

Das passt natürlich noch nicht von der Formatierung. Wird eine andere Herausforderung für mich..

Schönen Abend!!

PHP:
<table>
  <?php
    echo "<div class='ueberschrift'> <p1>" . $betreff . "</p1></div><br>";
   
    $con = mysqli_connect("localhost","website_mk","Z8yC{b&w)/u4pk","db_website");
    $con -> set_charset("utf8");
   
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      exit();
    }

    $sql =  "SELECT * FROM `table_grammatik` WHERE grammatik_faelligkeit <= CURRENT_DATE";

    $result = mysqli_query($con, $sql);

    echo "<tr><th>Regel</th><th>Grad</th><th>Fällig</th></tr>";
    while($row = $result-> fetch_assoc()) {
          if ($row["grammatik_beispiel"] != "") {$Beispieltext = "Beispiel: <br>" . nl2br($row["grammatik_beispiel"]);}
          echo "<tr><td>" . "[Nr. " . $row["grammatik_key"] . "] " . nl2br($row["grammatik_regel"]) . "<br> <br>" . $Beispieltext;
          echo "<td>" . $row["grammatik_schwierigkeit"] . "</td>";
          echo "<td>" . $row["grammatik_faelligkeit"] . "<br> <br>";
          echo "erneuter Aufruf: <br>";
          echo "<form action='/action_trainer.php' method='post'>";
            echo "<button type='submit' value='2' name='submit'>2 Tage</button>";
            echo "<br>";
            echo "<button type='submit' value='7' name='submit'>1 Woche</button>";
            echo "<br>";
            echo "<button type='submit' value='30' name='submit'>1 Monat</button>";
            echo "<br>";
            echo "<button type='submit' value='180' name='submit'>6 Monate</button>";
            echo "<br>";
            echo "<button type='submit' value='0' name='submit'>nie</button>";
            echo "<br>";
          echo "</form>";
          echo "</td></tr>";

          $Beispieltext = "";
    }

    mysqli_free_result($result);

    mysqli_close($con);
  ?>
</table>
 

Anhänge

  • beispiel.png
    beispiel.png
    80,1 KB · Aufrufe: 3
Werbung:
Dein Verfahren mit dmehrfachen Submit-Buttons ist zwar unkonventionell, funktioniert jedoch :smile:
Grund für die Buttons ist, dass ich die Homepage u.a. als Startseite für den Browser meines TV nutze. Und aufgrund dessen muss das Betätigen der Auswahl möglich einfach sein, dh. durch möglichst einen Klick erledigt werden. Und nicht erst Klick für Auswahl und dann zweiter Klick Bestätigen.
 
Die Values würde ich allerdings anders machen
PHP:
echo "<button type='submit' value='2 DAY' name='submit'>2 Tage</button><br>
      <button type='submit' value='1 WEEK' name='submit'>1 Woche</button><br>
      <button type='submit' value='1 MONTH' name='submit'>1 Monat</button><br>
      <button type='submit' value='6 MONTH' name='submit'>6 Monate</button><br>
      <button type='submit' value='0' name='submit'>nie</button>";
Im Script kannst du dann dies machen:

PHP:
if ($_POST['submit'] != '0')
   $sql = "update `tabelle` set `datum`=DATE_ADD(`datum`, INTERVAL $_POST['submit']) where id=$id";
 
D. h. sql kennt z.B. den Ausdruck '2 DAY' und kann diese direkt verarbeiten also addieren, korrekt? Leider komme ich heute nicht zum testen..
 
Werbung:
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben