Ankündigung

Einklappen
Keine Ankündigung bisher.

FORMAT_DATE mit mysqli?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • FORMAT_DATE mit mysqli?

    Hallo

    ich muss das Datum formatieren und ich kriege das nicht hin.

    Mit mysql hat es funktioniert:

    PHP-Code:
    $format = "%d.%m.%Y";
    ......
    $GET_DATE = mysql_query("SELECT DATE_FORMAT(DATE, '$format') FROM coasters ORDER BY DATE DESC LIMIT 1");
                $update = mysql_result($GET_DATE,0,0);
    ....
    ....
    <td align="right" class="updated" height="30"><?php echo $update_text ?>&nbsp;<?php echo $update ?></td>
    wenn ich das auf mysqli anpassen will, funktioniert nicht mehr:

    PHP-Code:
    $format = "%d.%m.%Y";
    .....
    $GET_DATE = mysqli_query($conn, "SELECT DATE_FORMAT(DATE, '$format') FROM coasters ORDER BY DATE DESC LIMIT 1");
                $update = mysqli_fetch_assoc($GET_DATE);
    .....
    .....
    <td align="right" class="updated" height="30"><?php echo $update_text ?>&nbsp;<?php echo $update["DATE"?></td>
    hier bekomme ich eine leere Seite.
    Was mache ich falsch?

    Vielen Dank im Voraus und schöne Grüsse

  • #2
    "funktioniert nicht" ist leider keine brauchbare Fehlerbeschreibung.

    Hast du das Error-Reporting von mysqli aufgedreht?

    http://php.net/manual/de/mysqli-driver.report-mode.php

    Kommentar


    • #3
      Da sollte doch eigentlich eine Notice mit "undefined index: DATE" stehen. Versuch es mal bitte mit einem Alias (nachdem du das error_reporting aufgedreht hast):

      PHP-Code:
      $format = "%d.%m.%Y";
      .....
      $GET_DATE = mysqli_query($conn, "SELECT DATE_FORMAT(DATE, '$format') AS FDATE FROM coasters ORDER BY DATE DESC LIMIT 1");
                  $update = mysqli_fetch_assoc($GET_DATE);
      .....
      .....
      <td align="right" class="updated" height="30"><?php echo $update_text ?>&nbsp;<?php echo $update["FDATE"?></td>

      Kommentar


      • #4
        Danke ihr beide. Es hat jetzt mit dem Alias funktioniert.

        Kommentar


        • #5
          Das Datum würde ich mir von der DB immer im ISO Format zurückgeben lassen.

          Begründung

          Nehmen wir an du möchtest das Datum anstatt als 10.01.2019 als 10.1.2019 oder als Donnerstag, 10.1.19 oder als 10. Jan 2019 ausgeben lassen, dann musst du jedes mal deine Abfrage anpassen. Hast du mehrere Abfragen musst du alle anfassen damit sich ein einheitliche Bild deiner Webseite ergibt, zudem kann MySql keine deutschen Monatsnamen, dann musst du wieder ran mit str_replace und diese ersetzen.

          Wenn du das aber bei der Ausgabe formatierst und das als Klasse oder Funktion auslagerst, dann hast du nur eine Stelle wo du ansetzen musst.

          Weitere Tipps

          PHP-Code:
          <td align="right" class="updated" height="30"><?php echo $update_text ?>&nbsp;<?php echo $update["DATE"?></td>
          Das Attribut align ist veraltet und kannst du in der CSS Klasse updated unterbringen,ebenso die H'öhe.
          PHP echo kann man abkürzen.
          PHP-Code:
          <td class="updated"><?= $update_text?>&nbsp;<?= $update["DATE"]; ?></td>
          sieht doch gleich viel angenehmer aus.

          Als nächstes musst du dich noch um den Kontextwechsel kümmern.
          $update_text sollte nicht einfach so ins Markup übernommen werden.

          In wie weit du das EVA-Prinzip einhältst kann man nicht ersehen aber mache niemals DB Abfragen innerhalb von HTML Ausgaben.

          Kommentar

          Lädt...
          X