Kommentarfunktion MySQL funktioniert nicht?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Such mal nach mysqli Query... der ganze mysql_query Kram ist veraltet. Oder befass dich am besten sofort mit pdo

Darfichwasfrage 
Fragesteller
 19.03.2020, 17:38

Danke, dann Mach ichs am besten mit pdo, hab grad nachgeschaut

0
Darfichwasfrage 
Fragesteller
 19.03.2020, 17:52
@Darfichwasfrage

$pdo =('mysql:host=localhost;dbname=id12940621_database', 'id12940621_user', 'Password');

    $sql = "SELECT * FROM MatheKommentare";

    foreach ($pdo->query($sql) as $row) {

    echo $row['ID']."<br />";

    echo $row['name']."<br />";

    echo $row['text']."<br /><br />";

    }

Wieso wird mir jetzt bei mir für Zeile eins angezeigt: Syntax Error, unexpectet ','?

0
raven3k  19.03.2020, 17:55
@Darfichwasfrage

Musst dir halt alles genau anschauen... angeblich hast du irgendwo ein Komma, wo keins hingehört

0
raven3k  19.03.2020, 17:56
@Darfichwasfrage

Mach mal ein Screenshot oder ist der Code komplett 1:1 wie in der php Datei ?

0
Darfichwasfrage 
Fragesteller
 19.03.2020, 18:03
@raven3k

$pdo =('mysql:host=localhost;dbname=database','user', 'Password');

    $sql = "SELECT * FROM MatheKommentare";

    foreach ($pdo->query($sql) as $row) {

    echo $row['ID']."<br />";

    echo $row['name']."<br />";

    echo $row['text']."<br /><br />";

    }

Bis auf Die Zugangs daten (die keine Kommas beinhalten) eigentlich 1:1 habs extra nochmal kopiert. Ich schreibe grad vom Raspberry Pi aus und kann leider keinen Screenshot machen

0
raven3k  19.03.2020, 18:06
@Darfichwasfrage

Ach jetzt seh ich einen Fehler... da fehlt new pdo vor deinem DSN

<?php

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

?>

0
raven3k  19.03.2020, 18:11
@Darfichwasfrage

Ach kommt bei den besten Entwicklern vor... bei Syntax error, sag ich immer „Sonntags Fehler“ :)

0
Was habe ich falschgemacht?

Du verwendest mysql_query - das gibt's seit PHP 7 aber nicht mehr.

Alex

Darfichwasfrage 
Fragesteller
 19.03.2020, 17:31

Ok, Danke ich werde mal kucken

0
EinAlexander  19.03.2020, 17:34
@Darfichwasfrage
Danke ich werde mal kucken

Dann kuck auch gleich nach mysql_fetch_array - das gibt's nämlich auch nicht mehr.

0

Zuerst einmal: Nutze nur mysqli-Funktionen, statt mysql. Letzere sind veraltet und sollten nicht mehr angewandt werden.

An dieser Stelle:

$_res = mysql_query($_sql, $link);

würde ich zudem das Ergebnis erst auf seinen Typ prüfen.

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

if ($result) {
  // read further ...
}
else {
  // there was an error ...
}

Schreibe das also erst einmal alles um und schau danach noch einmal.

Wie schon gesagt wird mysql eigentlich seit PHP 5.5 nicht mehr verwendet und wurde in PHP 7 entfernt. Einerseits könntest du es mit Pod machen, ich persönlich benutze aber lieber mysqli. Der richtige Code würde wie folg aussehen. Wenn du noch Fragen zum Code hast, kannst du diese gern stellen.

<?php
  $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
  $_sql = "SELECT * FROM MatheKommentare ORDER BY ID";
  $_res = mysqli_query($link, $_sql);

  while ($row = mysqli_fetch_assoc($_res)) {
    echo "<div>";
    echo "Kommentar Nummer: " . $row["id"];
    echo " von " . $row["name"];
    echo "Text: ". str_replace("\n", $row["text"]);
    echo "</div>";
  }
?>

Zeigt immer dieselbe Zeile an, die erste, oder?

Darfichwasfrage 
Fragesteller
 19.03.2020, 17:30

Die neuste soz. Und seit ich das, was oben steht eingegeben habe garnix mehr

0