Datenbank – die besten Beiträge

Werte aus Datenbank anzeigen mit JS?

Hallo,

ich habe folgenden Code für mein Formular:

<form action="/message1" method="post">
  <div class="input">
    <input type="text" placeholder="Chat" id="input" name="input1">
  </div>
  <div class="send">
    <button type="submit" onclick="message();">Send</button>
  </div>
</form>

Nun noch das JS onclick-Event:

function message() {
  input = document.getElementById("input").value;
  count++;

  if (input == "") {
    alert("please type your message!");
  }
  else {
    if (count % 2 == 0) {
      let newDiv = document.createElement("div");
      newDiv.id = "divMessage";
      newDiv.style.display = "flex";
      newDiv.style.justifyContent = "flex-start";
      newDiv.style.margin = "45px";
      newDiv.style.backgroundColor = "#303032";
      newDiv.style.borderRadius = "10px";
      newDiv.style.padding = "10px";
      newDiv.style.marginTop = "80px";
      newDiv.style.color = "white";
      newDiv.style.marginBottom = "80px";
      newDiv.style.width = "120px";
      newDiv.innerHTML = input;

      let chatMessages = document.querySelector(".chat-messages");
      chatMessages.appendChild(newDiv);
    }

Und nun noch das Reinschreiben mit node.js in die MariaDB-Datenbank:

app.post('/message1', async (req, res) => {
  const input = req.body.input1;
  console.log(input);
  const conn = await pool.getConnection();
  await conn.query(`INSERT INTO test.handy (id, name) VALUES (2, '${input}')`);
  conn.release();
});

Nun möchte ich aber, das, was in die Datenbank geschrieben wurde, beim Aktualisieren der Seite immer noch im "newDiv" anzeigen. Wie geht das?

LG

HTML, Webseite, Datenbank, Programmiersprache, Webentwicklung

Wie kann der eingegebene Eintrag nach Bestätigung in die Datenbank gespeichert werden?

Hallo,

mit folgendem Code scheint es nicht zu funktionieren, dass die Eingabe nach Bestätigungsfrage nicht in der Datenbank aktualisiert. Warum? Bin neu in PHP
Danke!

 if ($name_select && $name_select !== $_POST["name"]) {

    // Meldung ausgeben, dass bereits ein Eintrag vorhanden ist

    echo "Es ist bereits ein Eintrag in der Spalte $column_name vorhanden. Möchten Sie den Eintrag wirklich überschreiben?";

    echo "<form action='putzgruppen.php' method='post'>";

    echo "<input type='hidden' name='name' value='" . $_POST["name"] . "'>";

    echo "<input type='hidden' name='column_name' value='" . $column_name . "'>";

    echo "<input type='submit' name='confirm' value='Ja'>";

    echo "<input type='submit' name='cancel' value='Nein'>";

    echo "</form>";

  } else {

    if ($count == 0) {

      // Einfügen des Namens in die Datenbank

      $name = $_POST["name"];

      $sql = "INSERT INTO Putzgruppe ($column_name) VALUES ('$name')";

      if (mysqli_query($conn, $sql)) {

        echo "Daten erfolgreich gespeichert.";

        header("Location: putzgruppen.php"); // Weiterleitung zur Datenbankseite

        exit(); // Beenden des Skripts, um ein weiteres Ausführen zu verhindern

      } else {

        echo "Fehler: " . $sql . "<br>" . mysqli_error($conn);

      }

    } else {

      if(isset($_POST['confirm'])) {

        // Aktualisierung des bestehenden Eintrags

        $name = $_POST["name"];

        $column_name = $_POST["column_name"];

        $sql = "UPDATE Putzgruppe SET $column_name='$name' WHERE $column_name='$name_select'";

        if (mysqli_query($conn, $sql)) {

          echo "Daten erfolgreich aktualisiert.";

          header("Location: putzgruppen.php"); // Weiterleitung zur Datenbankseite

          exit(); // Beenden des Skripts, um ein weiteres Ausführen zu verhindern

        } else {

          echo "Fehler: " . $sql . "<br>" . mysqli_error($conn);

        }

      }

    }

  }

} else {

  echo "Das Eingabefeld ist leer.";

}

Datenbank, MySQL, PHP

Wie vergleiche ich PHP Variablen mit unterschiedlicher Codierung?

Hallo liebe Community.

Ich suche die Lösung für ein Problem bei der Programmierung mit PHP und Variablen.

Ich möchte gerne einen Wert, den ich über mysqli abgerufen habe mit einer Variable aus einem Array vergleichen.

Das Problem dabei ist, dass bei Umlauten und Sonderzeichen das Programm nicht mitmacht. Die beiden verglichenen Werte müssten gleich sein, werden aber nicht als gleich erkannt.

Hier mein Beispiel:

Datenbank:

id --- vorname --- nachname

1 --- Sabrina --- M&uuml;ller

PHP:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  

(Hier ein PHP Abschnitt zur Eintragung in die Datenbank, also demnach auch in UTF8 codiert)

$test = array("Sabrina","M&uuml;ller");

$result = mysqli_query($datenbank,"SELECT vorname, nachname FROM telefonbuch WHERE id='1'");

while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)) {

if($row['nachname']==$test[1])

echo "Erfolg";

else

echo "Kein Erfolg";

}

Ergebnis:

Wenn ich die Seite so aufrufe, kommt "Kein Erfolg".

Die Datenbank umfasst mehr Einträge, also alles andere ist richtig programmiert. Alles hat "Erfolg", nur die Einträge mit ä,ö,ü,ß,@, etc. haben keinen Erfolg.

Auch if($row['nachname']=='Müller') → Kein Erfolg

Auch if($row['nachname']=='M&uuml;ller') → Kein Erfolg

Auch wenn ich beide Werte vorher in Variablen packe → Kein Erfolg

Ein Test mit:

echo mb_detect_encoding($str)

Ergibt bei:

$row['nachname'] → UTF-8

$test[1] → ASCII

Wieso kann ich diese beiden Variablen nicht miteinander vergleichen und was kann ich tun, um dieses Problem mit den Umlauten zu lösen?

Vielen Dank für jede Hilfe.

Liebe Grüße =)

HTML, Webseite, Datenbank, MySQL, PHP

Meistgelesene Beiträge zum Thema Datenbank