Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

PHP, CSS und JavaScript lernen. Anwendungen für Webseiten
Sky-Kay
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 28
Registriert: Mi 3. Aug 2022, 12:02

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Sky-Kay »

Hallo Werner,

doch die Werte (nur der farbliche Hintergrund) ohne die Zahlen soll in der DB gespeichert werden.
Wenn ich z.B. den Titel php-coder suche und dann folgende Felder ausgewählt werden soll es so ausschauen..
Bild_2022-08-14_101040124.png
Bild_2022-08-14_101040124.png (5.15 KiB) 1224 mal betrachtet
Wenn ich z.B. nach einen anderen Titel suche ... soll es so ausschauen..
Bild_2022-08-14_101308568.png
Bild_2022-08-14_101308568.png (5.18 KiB) 1224 mal betrachtet
Die Inhalte dieser Tabelle Namen oder Tage sind nur Beispiele, die Tabelle soll wie ein Eintrag in die Datenbank behandelt werden.
Grüssle
Kay

Wenn ich wüsste wie es Funktioniert, dann könnte ich auch Besser helfen
Sky-Kay
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 28
Registriert: Mi 3. Aug 2022, 12:02

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Sky-Kay »

Hallo zusammen,

wollte mal nachfragen ob ihr schon ein stück weiter gekommen seid?
Ich komme nicht weiter :(
Grüssle
Kay

Wenn ich wüsste wie es Funktioniert, dann könnte ich auch Besser helfen
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Tommy Herrmann »

Hallo,

Du - ich hatte ja schon weiter oben geschrieben, dass ich da raus bin. Mit anderen Worten, ich habe mir das deswegen erst gar nicht angeguckt.

Ich habe zwar in den Jahren auch etwas PHP und SQL lernen können (insbesondere vom Werner), fühle mich aber nicht sicher genug um bei solchen Basteleien helfen zu können, insbesondere was die Sicherheit betrifft.

... ich wüsste jetzt hier auch nicht wirklich jemanden, der daran Interesse haben könnte, da Dein Anliegen ziemlich speziell ist.

Ich will aber natürlich auch nicht vorgreifen und jede Hilfe ist hier immer willkommen.
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Werner-Zenk.de »

Also Aufträge nehme ich keine an und drängeln geht überhaupt nicht in einem Forum :(
test.zip
(2.27 KiB) 50-mal heruntergeladen
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Tommy Herrmann »

Werner,

ich habe mir das, neugierig wie ich bin, natürlich auch angeguckt.

Ist das nicht exakt das, was Kay wollte? Glaube schon :tu:

Datenbank-Bearbeiten.jpg

SQLite-DB.jpg
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Werner-Zenk.de »

Ich habe das ganze noch eimal überarbeitet und eine Suchfunktion eingebaut:
Unbenannt.png
test.zip
(2.57 KiB) 54-mal heruntergeladen
Sky-Kay
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 28
Registriert: Mi 3. Aug 2022, 12:02

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Sky-Kay »

Hallo zusammen :winken:

Danke erstmal und es geht schon in die Richtung, ich muss es mir noch genau anschauen ob ich es so einbinden kann :)

Und ich wollte nicht drängeln :crying: das war nicht meine Absicht, sollte es so rüber gekommen sein bitte ich um Entschuldigung :crying:
Grüssle
Kay

Wenn ich wüsste wie es Funktioniert, dann könnte ich auch Besser helfen
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Werner-Zenk.de »

Hallo Sky-Kay,
meine Kommentare nicht zu ernst zu nehmen (hatte wahrscheinlich einen schlechten Tag auf der Arbeit :verlegen: keine Ahnung!).

Ich hatte auch zuerst Probleme das umzusetzen, ich weiß, du wolltest den Farbnamen in der DB speichern, das funktioniert aber nicht mit dem JavaScript, wie kann man Farben mit JS hochzählen, keine Ahnung.
Der Vorteil ist aber, dass man die Farben im Nachhinein anpassen kann. Aus dem Grün "green" kann man im Nachhinein auch ein "lightgreen" oder eine andere Farbe machen, ohne dass man die Einträge in der Datenbank ändern muss.
Sky-Kay
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 28
Registriert: Mi 3. Aug 2022, 12:02

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Sky-Kay »

Hallo @Werner, @Tommy @ll,

Entschuldigt bitte das ich mich erst jetzt melde, ich war Gesundheitlich Arg angeschlagen aber wieder auf dem weg der Besserung :tu:

Jetzt möchte ich die Umsetzung fertig stellen muss mich aber erst wieder etwas einfinden :( meine Konzentration spielt mir hin und wieder einen streich.

Und ich möchte mich erstmal für eure Hilfe bedanken :)
Grüssle
Kay

Wenn ich wüsste wie es Funktioniert, dann könnte ich auch Besser helfen
Sky-Kay
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 28
Registriert: Mi 3. Aug 2022, 12:02

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Sky-Kay »

ich muss was Nachfragen, mit welchen Programm wurde die datenbank.db erstellt?
Danke erstmal :)
Grüssle
Kay

Wenn ich wüsste wie es Funktioniert, dann könnte ich auch Besser helfen
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Tommy Herrmann »

MySQL Datenbanken stellt Dir Dein Provider (Anbieter) normalerweise zur Verfügung.

Logge Dich dort im Kundenmenü ein und folge den Anweisungen. Du bekommst dann alle Zugangsdaten dort angezeigt, die Du dann in Werners Skript eintragen musst.

... oder meinst Du eine SQLite Datenbank?

Um die zu bearbeiten empfiehlt Werner z.B. den "SQLite Browser":

https://sqlitebrowser.org/
Sky-Kay
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 28
Registriert: Mi 3. Aug 2022, 12:02

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Sky-Kay »

Hi Tommy,

das wars :) :tu:
Tommy Herrmann hat geschrieben: Fr 3. Feb 2023, 16:23 Um die zu bearbeiten empfiehlt Werner z.B. den "SQLite Browser":

https://sqlitebrowser.org/

Das habe ich alles, Webspace und MySQL Datenbanken ;)
Tommy Herrmann hat geschrieben: Fr 3. Feb 2023, 16:23 MySQL Datenbanken stellt Dir Dein Provider (Anbieter) normalerweise zur Verfügung.

Logge Dich dort im Kundenmenü ein und folge den Anweisungen. Du bekommst dann alle Zugangsdaten dort angezeigt, die Du dann in Werners Skript eintragen musst.
Schaut Werner ab und zu mal vorbei?
Grüssle
Kay

Wenn ich wüsste wie es Funktioniert, dann könnte ich auch Besser helfen
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5744
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Tommy Herrmann »

Ja klar - Werner ist fast täglich hier (fast)
Sky-Kay
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 28
Registriert: Mi 3. Aug 2022, 12:02

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Sky-Kay »

Hallo Werner,

Ich steh wieder erwarten voll aufn Schlauch :crying:
meine bestehende suchen.php soll mit deiner Neuen index.php verbunden erweitert werden..

suchen.php

Code: Alles auswählen

<!DOCTYPE html>
<html lang="de">
 <head>
  <meta charset="UTF-8">
  <title>dbtabtest</title>
<link rel="stylesheet" type="text/css" href="css/styles.css">
<script src="js/jquery-1.5.2.min.js"></script>
<script src="js/script.js"></script>
 <script src="jquery-1.5.2.min.js"></script>
<script src="script.js"></script>
  <style>
body {
   font-family: Verdana, Arial, Sans-Serif;
   background-color: Whitesmoke;
  }

td {
   border-collapse: collapse;
   background: Whitesmoke; 
   cursor: pointer; 
   padding: 1px 
  }

  a:link, a:visited {
   color: Royalblue;
   text-decoration: None;
  }
  </style>

 </head>
<body>

<nav>
 <span onClick="window.location.href='auslesen.php';"
style="cursor:pointer">Koordinaten</span> |
 <span onClick="window.location.href='eintragen.php';"
style="cursor:pointer">Eintragen</span> |
 <span onClick="window.location.href='bearbeiten.php';"
style="cursor:pointer">Bearbeiten</span> |
 <u>Suchen</u>
</nav><br>
<hr>

<form method="get">
 <p>
  <input type="text" name="suchbegriff" required="required"
   value="<?php echo isset($_GET["suchbegriff"]) ? $_GET["suchbegriff"] : '' ?>">
  <input type="submit" name="suche" value="los">
 </p>
</form>

<?php
// Wurde eine Suchanfrage über GET gesendet?
if (isset($_GET["suche"])) {

 // Leerzeichen im Suchbegriff löschen.
 $_GET["suchbegriff"] = trim($_GET["suchbegriff"]);

 // Suchbegriff größer als 3 Zeichen?
 if (strlen($_GET["suchbegriff"]) >= 1) {

  // Verbindung zur Datenbank aufbauen.
  include "verbinden.php";

  // Nachrichten auslesen
  // prepare() führt die SQL-Anweisung aus, die eine
  // Ergebnismenge als PDO-Statement Objekt zurück gibt.
  $select = $db->prepare("SELECT *
                          FROM `test_dbtab`
                          WHERE (`spieler` LIKE :suchbegriff OR
                                 `ally` LIKE :suchbegriff OR
                                 `galaxie` LIKE :suchbegriff OR
                                 `system` LIKE :suchbegriff OR
                                 `planet` LIKE :suchbegriff OR
                                 `notiz` LIKE :suchbegriff)
                             AND `anzeige` = '1'
                          ORDER BY `datum` DESC
                          LIMIT 0, 240");

  // $select->bindValue() bindet einen Wert an den angegebenen Variablennamen
  // (der Platzhalter wird mit dem Inhalt der GET-Variable ersetzt).
  $select->bindValue(':suchbegriff', '%' . $_GET["suchbegriff"] . '%');

  // $select->execute() führt die vorbereitete Anweisung aus.
  if ($select->execute() == false) {
   // Gibt bei einer fehlerhaften Anweisung eine SQL-Fehlermeldung aus.
   print_r($select->errorInfo());
  }

  // $select->fetchAll() gibt ein Array mit allen Datensätzen zurück.
  $nachrichten = $select->fetchAll();

  // Anzahl der Nachrichten überprüfen
  $AnzahlNachrichten = $select->rowCount();
  if ($AnzahlNachrichten > 0) {
   echo '<p>&#9655; ' . $AnzahlNachrichten .
    ($AnzahlNachrichten == 1 ? ' Koordinate' : ' Koordinaten') . ' gefunden.</p>';

   // Die gefundenen Nachrichten über eine Foreach-Schleife ausgeben.
   foreach ($nachrichten as $nachricht) {
    sscanf($nachricht['datum'], "%4s-%2s-%2s", $jahr, $monat, $tag);
    echo '<p><small>' . $tag . '.' . $monat . '.' . $jahr .
     '</small> - <b>' . $nachricht['spieler'] . '</b> Ally: <em>' . 
     $nachricht['ally'] . '</em><br> Galaxie: ' .
     $nachricht['galaxie'] . ' System: ' .
     $nachricht['system'] . ' Planet: ' .
     $nachricht['planet'] . '<br> Notiz: ' .
     $nachricht['notiz'] . '<br>' .
  'Anzeige: ' . $nachricht['anzeige'] . ' - ' .
  '<br><span onClick="window.location.href=\'?id=' . $nachricht['id'] . '\';" style="cursor:pointer;color:blue"><small>Koordinate bearbeiten</small></span></p>';
   }
  }
  else {
   echo '<p>&#9655; Es wurden keine Koordinaten gefunden!</p>';
  }
 }
 else {
  echo '<p>&#9655; Suchbegriff mit mind. 4 Zeichen!</p>';
 }
}
?>

<?php
// Verbindung zur Datenbank aufbauen.
include "verbinden.php";

// Die Nachricht aus der Datenbank zum bearbeiten in ein Formular laden.
// Wurde eine ID über $_GET gesendet?
if (isset($_GET["id"]) &&
   !isset($_GET["bearbeiten"])) {

 // Nachricht mit der ID auslesen
 // prepare() bereitet die Anweisung für das auslesen vor.
 $select = $db->prepare("SELECT `id`, `datum`, `spieler`, `ally`, `galaxie`, `system`, `planet`, `notiz`, `anzeige`
                         FROM `test_dbtab`
                         WHERE `id` = :id");

 // Der Platzhalter wird mit $select->bindParam() durch den Inhalt der GET-Variablen maskiert.
 $select->bindParam(':id', $_GET["id"], PDO::PARAM_INT);
 $select->execute(); // Führt die Anweisung aus.

 // $select->fetch() holt die betreffende Zeile aus dem Ergebnis.
 $nachricht = $select->fetch();

 // Mit $select->rowCount() überprüfen ob ein Datensatz zurückgegeben wurde.
 if ($select->rowCount() == 1) {

 // Die Auswahlliste für die Kategorie erstellen
  // Die Checkbox auswählen
  $anzeigeCK = ($nachricht["anzeige"] == "1") ? ' checked="checked"' : '';

  // Formular zum bearbeiten der Nachricht ausgeben
  echo '<form method="post" action="?bearbeiten">
   <p>
    <label>Spieler: 
     <input type="text" name="spieler" value="' . $nachricht["spieler"] . '" size="30" maxlength="31" required="required">
    </label>
   </p>

   <p>
    <label>Ally: 
     <input type="text" name="ally" value="' . $nachricht["ally"] . '" size="10" maxlength="11">
    </label>
   </p>

   <p>
    <label>Galaxie: 
     <input type="text" name="galaxie" value="' . $nachricht["galaxie"] . '" size="3" maxlength="4" required="required">
    </label>
   </p>

   <p>
    <label>System: 
     <input type="text" name="system" value="' . $nachricht["system"] . '" size="2" maxlength="3" required="required">
    </label>
   </p>

   <p>
    <label>Planet: 
     <input type="text" name="planet" value="' . $nachricht["planet"] . '" size="2" maxlength="3" required="required">
    </label>
   </p>

   <p>
    <label>Notiz: <br>
     <textarea rows="10" cols="50" name="notiz">' . $nachricht["notiz"] . '</textarea>
    </label>
   </p>

   <p>
    <label>
     <input type="checkbox" name="anzeige" checked="checked"> Koordinaten anzeigen
    </label>
   </p>

   <p>
    <label><input type="radio" name="option" value="edit" checked="checked"> Ändern</label>
    <label><input type="radio" name="option" value="delete" required="required"> Löschen</label>
    <input type="hidden" name="id" value="' . $nachricht["id"] . '">
   </p>

   <p>
    <input type="submit" name="execute" value="Absenden">
   </p>
  </form>';
 }
 else {
  echo '<p>Diese Koordinate ist nicht vorhanden!</p>';
 }
}

// Nachricht ändern oder löschen
if (isset($_POST["execute"])) {

 // Nachricht ändern
 if ($_POST["option"] == 'edit') {

  // Die Formulareingaben müssen hier überprüft werden,
  // siehe: https://werner-zenk.de/tipps/php_mit_sicherheit.php

  // Der Variable: $anzeige einen Wert zuweisen, entweder 1 oder 0.
  // Je nachdem ob die Checkbox gesetzt (ausgewählt) wurde.
  $anzeige = isset($_POST["anzeige"]) ? 1 : 0;

  // prepare() (prepare = aufbereiten) bereitet die Anweisung für die Ausführung vor.
  $update = $db->prepare("UPDATE `test_dbtab`
                          SET
                            `spieler` = :spieler,
                            `ally` = :ally,
                            `galaxie`     = :galaxie,
                            `system` = :system,
                            `planet` = :planet,
                            `notiz` = :notiz,
                            `anzeige` = :anzeige
                          WHERE `id` = :id");

  // Die Platzhalter werden über ein assoziatives Array mit dem Inhalt der POST-Variablen übergeben.
  // $update->execute() führt die Anweisung dann aus.
  if ($update->execute( [':spieler' => $_POST["spieler"],
                         ':ally' => $_POST["ally"],
                         ':galaxie' => $_POST["galaxie"],
                         ':system' => $_POST["system"],
                         ':planet' => $_POST["planet"],
                         ':notiz' => $_POST["notiz"],
                         ':anzeige' => $anzeige,
                         ':id' => $_POST["id"] ])) {
   echo '<p>&#9655; Die Koordinaten wurden überschrieben.</p>';
  }
  else {
   // SQL-Fehlermeldung anzeigen.
   print_r($update->errorInfo());
  }
 }

 // Nachricht löschen
 if ($_POST["option"] == 'delete') {

  // prepare() bereitet die Anweisung für die Ausführung vor.
  $delete = $db->prepare("DELETE FROM `test_dbtab`
                          WHERE `id` = :id");

  // Der Platzhalter wird über ein assoziatives Array mit dem Inhalt der POST-Variable übergeben.
  // $delete->execute() führt die Anweisung dann aus.
  if ($delete->execute( [':id' => $_POST["id"] ])) {
   echo '<p>&#9655; Die Koordinaten wurden gelöscht.</p>';
  }
 }
}

// Nachrichten auslesen
// $select->query() führt die SQL-Anweisung aus,
// die eine Ergebnismenge als PDOStatement Objekt zurück gibt.
$select = $db->query("SELECT `id`, `datum`, `spieler`, `ally`, `galaxie`, `system`, `planet`, `notiz`,`anzeige`
                      FROM `test_dbtab`
                      ORDER BY `datum` DESC");

// $select->fetchAll(PDO::FETCH_OBJ) gibt ein Objekt mit allen Datensätzen zurück.
$nachrichten = $select->fetchAll(PDO::FETCH_OBJ);

// Anzahl der Nachrichten mit count($nachrichten) ausgeben.
echo '<h4>' . count($nachrichten) .
 (count($nachrichten) == 1 ? ' Koordinate' : ' Koordinaten') . '</h4>';

// Ausgabe über eine Foreach-Schleife
foreach ($nachrichten as $nachricht) {
 sscanf($nachricht->datum, "%4s-%2s-%2s", $jahr, $monat, $tag);
 echo '<p><small>' . $tag . '.' . $monat . '.' . $jahr .
  '</small> - <b>' . $nachricht->spieler . '</b>' .
  ' Ally: ' . $nachricht->ally . '<br>' .
  ' Galaxie: ' . $nachricht->galaxie . 
  ' System: ' . $nachricht->system . 
  ' Planet: ' . $nachricht->planet . '<br>' .
  ' Notiz: ' . $nachricht->notiz . '<br>' .
  'Anzeige: ' . $nachricht->anzeige . ' - ' .
  '<span onClick="window.location.href=\'?id=' . $nachricht->id . '\';" style="cursor:pointer;color:blue"><small>Koordinaten bearbeiten</small></span></p>';
}
// OneKlickTabelle
?>

</body>
</html>
index.php

Code: Alles auswählen

<!DOCTYPE html>
<html lang="de">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Nachrichten</title>

  <style>
    .grid-container {
      display: grid;
      grid-template-rows: 100px 100px 100px;
      grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
      grid-gap: 1px;
      grid-template-areas:
        "area1 area1 area1 area1 area1"
        "area2 area2 area3 area3 area3"
        "area4 area4 area3 area3 area3"
        "area4 area4 area3 area3 area3"
        "area4 area4 area5 area5 area5"
        "area4 area4 area5 area5 area5"
        "area4 area4 area5 area5 area5";
    }

    .grid-item1 {
      background: Whitesmoke;
      text-align: center;
      border: black 0.5px solid;
      grid-area: area1;
    }

    .grid-item2 {
      background: Whitesmoke;
      text-align: center;
      border: black 1px solid;
      grid-area: area2;
    }

    .grid-item3 {
      background: Whitesmoke;
      text-align: center;
      border: black 1px solid;
      grid-area: area3;
    }

    .grid-item4 {
      background: Whitesmoke;
      text-align: center;
      border: black 1px solid;
      grid-area: area4;
    }

    .grid-item5 {
      background: Whitesmoke;
      text-align: center;
      border: black 1px solid;
      grid-area: area5;
    }

    body {
      font-family: Verdana, Arial, Sans-Serif;
      background-color: Whitesmoke;
    }

    td {
      border-collapse: collapse;
      background: Whitesmoke;
      border: black 0.5px solid;
      padding: 0px
    }

    .tag {
      color: transparent;
      background: transparent;
      cursor: pointer;
      border: Solid 0px transparent;
      text-align: center;
      width: 70px;
    }

    .tag:focus-visible {
      outline: 0px;
      border: 0px;
    }

    table {
      margin: auto;
    }

    table th:nth-child(even),
    table tr:nth-child(even) {
      background-color: #ffffff;
    }

    table tr {
      transition: background-color 0.3s;
    }

    table tr:hover {
      background-color: #dddddd;
    }
  </style>

</head>

<body>

  <div class="grid-container">
    <div class="grid-item1">
      <nav>
        <u>Suchen</u> |
        <span onClick="window.location.href='eintragen.php';" style="cursor:pointer">Eintragen</span> |
        <span onClick="window.location.href='bearbeiten.php';" style="cursor:pointer">Bearbeiten</span> |
        <span onClick="window.location.href='auslesen.php';" style="cursor:pointer">Nachrichten</span> |
      </nav>
    </div>

    <div class="grid-item2">

    <form method="post">
        <p>
          <label>Suche: <input type="search" name="suchbegriff" required placeholder="Name eingeben"></label>
          <button type="submit" name="suchen">los</button>
        </p>
      </form>
    </div>

    <div class="grid-item3">Leihen/Rückgabe<br>
    

      <form method="post">

        <table border="1">
          <tr>
            <th> Name / Tag </th>
            <th> Montag </th>
            <th> Dienstag </th>
            <th> Mittwoch </th>
            <th> Ändern </th>
          </tr>

          <?php
          include "db.php";
          $farben = ["transparent", "red", "green", "yellow"];

          if ($_SERVER["REQUEST_METHOD"] == "POST") {
            if (isset($_POST["submit"])) {

              // Eintragen
              if (isset($_POST["id"])) {
                foreach ($_POST["id"] as $id) {
                  $db->query("UPDATE `datenbank`
                          SET `Montag` = " . $_POST[$id . "|Montag"] . ",
                           `Dienstag` = " . $_POST[$id . "|Dienstag"] . ",
                           `Mittwoch` = " . $_POST[$id . "|Mittwoch"] . "
                          WHERE `id` = " . $id);
                }
              }
            }
          }

          // Suchen
          if (isset($_POST["suchen"]) && !empty($_POST["suchbegriff"])) {
            $select = $db->prepare("SELECT `id`, `name`, `Montag`, `Dienstag`, `Mittwoch` FROM `datenbank` WHERE `name` LIKE :suchbegriff");
            $select->bindValue(':suchbegriff', '%' . $_POST["suchbegriff"] . '%');
            $select->execute();
            $eintraege = $select->fetchAll();
            if (count($eintraege) > 0) {

              foreach ($eintraege as $eintrag) {
                echo '<tr>
            <th> ' . $eintrag["name"] . ' </th>
            <td style="background: ' . $farben[$eintrag["Montag"]] . ';"> <input type="text" name="' . $eintrag["id"] . '|Montag" value="' . $eintrag["Montag"] . '" readonly class="tag"> </td>
            <td style="background: ' . $farben[$eintrag["Dienstag"]] . ';"> <input type="text" name="' . $eintrag["id"] . '|Dienstag" value="' . $eintrag["Dienstag"] . '" readonly class="tag"> </td>
            <td style="background: ' . $farben[$eintrag["Mittwoch"]] . ';"> <input type="text" name="' . $eintrag["id"] . '|Mittwoch" value="' . $eintrag["Mittwoch"] . '" readonly class="tag"> </td> <th><input type="checkbox" name="id[]" value="' . $eintrag["id"] . '"></th>
          </tr>';
              }
            } else {
              echo '<p>Der Name ' . htmlspecialchars($_POST["suchbegriff"]) . ' ist nicht vorhanden!</p>';
            }
          }

          // Auslesen
          if (!isset($_POST["suchbegriff"])) {

            $select = $db->query("SELECT `id`, `name`, `Montag`, `Dienstag`, `Mittwoch` FROM `datenbank`");
            $eintraege = $select->fetchAll();

            foreach ($eintraege as $eintrag) {
              echo '<tr>
            <th> ' . $eintrag["name"] . ' </th>
            <td style="background: ' . $farben[$eintrag["Montag"]] . ';"> <input type="text" name="' . $eintrag["id"] . '|Montag" value="' . $eintrag["Montag"] . '" readonly class="tag"> </td>
            <td style="background: ' . $farben[$eintrag["Dienstag"]] . ';"> <input type="text" name="' . $eintrag["id"] . '|Dienstag" value="' . $eintrag["Dienstag"] . '" readonly class="tag"> </td>
            <td style="background: ' . $farben[$eintrag["Mittwoch"]] . ';"> <input type="text" name="' . $eintrag["id"] . '|Mittwoch" value="' . $eintrag["Mittwoch"] . '" readonly class="tag"> </td> <th><input type="checkbox" name="id[]" value="' . $eintrag["id"] . '"></th>
          </tr>';
            }
          }
          ?>
        </table>

        <p><button type="submit" name="submit">Speichern</button></p>

      </form>

    </div>

    <div class="grid-item4">
     grid-item4
    </div>

    <div class="grid-item5">
     grid-item5
    </div>

  </div>

  <script>
    let tage = document.querySelectorAll(".tag");
    tage.forEach((tag) => {
      tag.addEventListener("click", (e) => {
        let wert = parseInt(e.target.value);
        wert++;
        if (wert > 3) wert = 0;
        e.target.value = wert;
        farben = ["transparent", "red", "green", "yellow"];
        e.target.parentNode.style.backgroundColor = farben[wert];
      });
    });
  </script>

</body>

</html>
Die Tabelle soll nur über ´íd´ mit dem ´spieler´ verbunden sein, so das ich in der ersten Spalte einen eigenen Text eintragen kann. So wie es z.B. in der ersten Zeile ist.

Danke schonmal
Grüssle
Kay

Wenn ich wüsste wie es Funktioniert, dann könnte ich auch Besser helfen
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Werner-Zenk.de »

Moin Sky-kay.

Sorry, dass ich das sagen muss, ab er du hast es nicht kapiert das es sich hierbei um 2 unterschiedliche Datenbanken handelt (MySQL, SQLite).
Die Datei suchen.php ist ein Script das ich dir mal (2019) erstellt / angepasst habe.

Ich sehe da keinen Ansatz einer Veränderung zum damaligen Script. Ich bin da nicht mehr bereit ein komplettes Script zu erstellen und mein Wochenende, für ein " Danke schonmal", damit zu verbringen.

In der index.php ist eine Suchfunktion schon drinnen, warum wird diese nicht verwendet?
Sky-Kay
Mitglied (Level 3)
Mitglied (Level 3)
Beiträge: 28
Registriert: Mi 3. Aug 2022, 12:02

Re: Fehlermeldung beim Eintragen MySQL Datenbank vom 21.11.2017

Ungelesener Beitrag von Sky-Kay »

Hallo Werner,
Sky-Kay hat geschrieben: Fr 10. Feb 2023, 14:17 In der index.php ist eine Suchfunktion schon drinnen, warum wird diese nicht verwendet?
Wie du schon geschrieben hast, es sind 2 unterschiedliche Datenbanken also werde ich nun versuchen die zwei Datenbanken zu verbinden. Das versuche ich mit einer 3. Datenbank...

In etwa so in diese Richtung, kann sein das hier noch ein paar Fehler im Bezug habe.

Code: Alles auswählen

CREATE TABLE AllDB AS
SELECT id, Name, Ally, Galxy, System, Plani, Notiz FROM test_dbtab
LEFT JOIN test_dbtab
ON Name.test_dbtab = test_dbtab.id
LEFT JOIN datenbank
ON test_dbtab.id = datenbank.id
danach versuche ich das mit der Ausgabe <echo>

Und Ja, ich kapiere es sehr langsam und versuche das beste daraus zu machen.
Da meine Konzentration oft nachlässt dauert es bei mir zudem auch länger bis ich es kapiere, und ich mich erst wieder reinlesen muss, das ich verstehe um was es geht.

Auf ein Wort zum ende, auch wenn du es nicht hören möchtest.
Danke für den Support was du und Tommy für mich geleistet habt.
Ich wünsche euch und euren Familien alles Gute und bleibt gesund.
Grüssle
Kay

Wenn ich wüsste wie es Funktioniert, dann könnte ich auch Besser helfen
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 16 Gäste