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

[ERLEDIGT] PHP Abfrage von Daten aus MySQL-Datenbank

DanySahne313

Neues Mitglied
Moin Moin,

ich betreibe Hobbymäßig eine Internetseite, auf welcher Daten auf einer Tabelle ausgegeben werden sollen. Dies funktioniert auch einwandfrei. Es geht an dieser Stelle lediglich um zwei "Formatierungsprobleme", welche ich trotz intensiver Recherche nicht beheben konnte.

PHP:
<?php

mysql_connect('HOST', 'NUTZER', 'PASSWORT');

mysql_select_db('DB');



$sql = "SELECT name, verein, spielklasse, spieldatum, vergehen, strafe FROM og ORDER BY spieldatum DESC";

$query = mysql_query($sql);

echo '<table class="table_og">';
    echo '<tr class="tr1_og">';
        echo '<th class="th_og">Name</th>';
        echo '<th class="th_og">Verein</th>';
        echo '<th class="th_og">Spielklasse</th>';
        echo '<th class="th_og">Spieldatum</th>';
        echo '<th class="th_og">Vergehen</th>';
        echo '<th class="th_og">Strafe</th>';
    echo '</tr>';

    while($fetch = mysql_fetch_assoc($query)) {
        echo '<tr class="tr2_og">';
            echo '<td class="td1_og" data-label="Name">' . $fetch['name'] . '</td>';
            echo '<td class="td1_og" data-label="Verein">' . $fetch['verein'] . '</td>';
            echo '<td class="td1_og" data-label="Spielklasse">' . $fetch['spielklasse'] . '</td>';
            echo '<td class="td1_og" data-label="Spieldatum">' . $fetch['spieldatum'] . '</td>';
            echo '<td class="td1_og" data-label="Vergehen">' . $fetch['vergehen'] . '</td>';
            echo '<td class="td1_og" data-label="Strafe">' . $fetch['strafe'] . '</td>';
        echo '</tr>';
    }
echo '</table>';
?>

Es geht nun darum, die Daten aus der Rubrik "Strafe" inklusive Zeilenumbrüche auszugeben. Diese sind in der Tabelle gespeichert, werden aber nicht ausgegeben. Die Funktion "nl2br" habe ich nicht funktionierend eingebunden bekommen.
Und weiter möchte ich das Datum gerne im Format DD.MM.YYYY ausgeben. An dieser Stelle konnte ich den CONVERT-Befehl für 104 nicht funktionsfähig verwenden.

Es wäre super, wenn ihr mir hierbei weiterhelfen und zeigen könntet, an welcher Stelle ich welchen Befehl einbauen sollte / muss. Natürlich freue ich mich auch über Code-Verbesserungen, Datenbanken sind nicht so wirklich mein Steckenpferd...

Vielen Dank bereits im Voraus :)
 
Werbung:
PHP:
$sql = "SELECT
           `name`,
           `verein`,
           `spielklasse`,
           DATE_FORMAT(`spieldatum`,'%d.%m.%Y') as mydate,
           `vergehen`,
           `strafe`
         FROM
           `og`
         ORDER BY
           `spieldatum` DESC";

PHP:
while($fetch = mysql_fetch_assoc($query))
   echo '<tr class="tr2_og">
           <td class="td1_og" data-label="Name">' . nl2br(htmlspecialchars($fetch['name'])) . '</td>
           <td class="td1_og" data-label="Verein">' . nl2br(htmlspecialchars($fetch['verein'])) . '</td>
           <td class="td1_og" data-label="Spielklasse">' . nl2br(htmlspecialchars($fetch['spielklasse'])) . '</td>
           <td class="td1_og" data-label="Spieldatum">' . nl2br(htmlspecialchars($fetch['mydate'])) . '</td>
           <td class="td1_og" data-label="Vergehen">' . nl2br(htmlspecialchars($fetch['vergehen'])) . '</td>
           <td class="td1_og" data-label="Strafe">' . nl2br(htmlspecialchars($fetch['strafe'])) . '</td>
        </tr>';

Die mysql-Erweiterung von PHP ist noch oft im Internet zu sehen, jedoch wird in der offiziellen Dokumentation klar empfohlen, auf die Erweiterungen mysqli oder PDO umzusteigen. Die mysql_*-Funktionen sind veraltet und sollten nicht mehr benutzt werden.

Seit PHP 5.3 gehört die veraltete mysql-Erweiterung nicht mehr zur Standard-Installation.
Seit PHP 5.5 ist die mysql-Erweiterung offiziell als deprecated (= missbilligt) gekennzeichnet.
Ab PHP 7 ist die Erweiterung entfernt worden.
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank bdt600!
Das MySQL nicht mehr der aktuelle Standard ist, war mir gar nicht bewusst. Ich habe meine Abfrage nun entsprechend umgeschrieben, es funktioniert alles. Herzlichen Dank dafür. Mein finaler Code anbei.

PHP:
<?php
$con = mysqli_connect('HOST', 'BENUTZER', 'PASSWORT', 'DB');
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql = "SELECT
          `name`,
          `verein`,
          `spielklasse`,
          DATE_FORMAT(`spieldatum`,'%d.%m.%Y') as mydate,
          `vergehen`,
          `strafe`
        FROM
          `og`
        ORDER BY
          `spieldatum` DESC";

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

echo '<table class="table_og">';
    echo '<tr class="tr1_og">';
        echo '<th class="th_og">Name</th>';
        echo '<th class="th_og">Verein</th>';
        echo '<th class="th_og">Spielklasse</th>';
        echo '<th class="th_og">Spieldatum</th>';
        echo '<th class="th_og">Vergehen</th>';
        echo '<th class="th_og">Strafe</th>';
    echo '</tr>';

    while($fetch = mysqli_fetch_assoc($result)) {
   echo '<tr class="tr2_og">
          <td class="td1_og" data-label="Name">' . nl2br(htmlspecialchars($fetch['name'])) . '</td>
          <td class="td1_og" data-label="Verein">' . nl2br(htmlspecialchars($fetch['verein'])) . '</td>
          <td class="td1_og" data-label="Spielklasse">' . nl2br(htmlspecialchars($fetch['spielklasse'])) . '</td>
          <td class="td1_og" data-label="Spieldatum">' . nl2br(htmlspecialchars($fetch['mydate'])) . '</td>
          <td class="td1_og" data-label="Vergehen">' . nl2br(htmlspecialchars($fetch['vergehen'])) . '</td>
          <td class="td1_og" data-label="Strafe">' . nl2br(htmlspecialchars($fetch['strafe'])) . '</td>
       </tr>';
    }
echo '</table>';
mysqli_close($con);
?>
 
Werbung:
Zurück
Oben