ilch Forum » Allgemein » HTML, PHP, SQL,... » Datumsfeld mit 0000 nicht ausgeben

Geschlossen
  1. #1
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Leute,
    ich möchte das Datensätze mit dem Datumsformat 0000-00-00 nicht ausgegeben weden. Ist das möglich. Habe keinen passenden Eintrag gefunden.
    Hier meine Datei
       echo '<table width="94%" border="1" bordercolor="#993300" cellpadding="5" cellspacing="0">';
       echo '<tr class="schon"><td bgcolor="#006600" width="30%">Gew&auml;sser</td><td bgcolor="#006600" width="10%">Sperre von:</td><td bgcolor="#006600" width="10%">Sperre bis:</td><td bgcolor="#006600" width="50%">Beschreibung</td><tr>';
      $erg = db_query('SELECT * FROM `prefix_gewsperre` ORDER BY id');
    	while ($row = db_fetch_row($erg))
            {
    		  echo '<tr class=tabelle><a href="#"><td> '.$row[1].' </td><td> '.$row[2].' </td><td> '.$row[3].' </td><td> '.bbcode($row[4]).'';
    		}
       echo '</td></a></tr></table>';

    Danke schon einmal im voraus. MfG heinz2


    verwendete ilch Version: 1.1 P

    betroffene Homepage: fischerfreunde-haimhausen.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Könntest doch einfach eine if abfrage einbauen das er nur eingräte nimmt wo das Datumsformat ungleich 0000-00-00 ist.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Danke,
    habe eine andere Lösung, gleich mit deutscher Datumsausgabe.
    $statement = $pdo->prepare("SELECT * FROM ic1_gewsperre");
    $statement->execute(array(''));
    while($row = $statement->fetch()) {
       $date1 = new DateTime($row['von']);
       $date2 = new DateTime($row['bis']);
       echo $row['zahl']."<br />";
       echo $date1->format('d.m.Y')."<br />";
       echo $date2->format('d.m.Y')."<br />";
       echo $row['text']."<br /><hr />";

    Nur wo binde ich hier die if Abfrage ein? Einen Hinweis zumindest währe schön.
    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    blakedj06 gelöschter User
    $erg = db_query('SELECT * FROM `prefix_gewsperre` WHERE deindatumfeld != 0000-00-00 ORDER BY id');

    Ersetze "deindatumfeld" mit dem Namen deines Datenbankfeldes.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Danke blakedj06, funktioniert super. Hast Du, oder ein anderes Mitglied der Community, auch einen Tip für deutsches Datumsformat?
    So bekomme ich nur das aktuelle Datum, im deutschen Format, über der Auflistung angezeigt.
    echo '<table width="94%" border="1" bordercolor="#993300" cellpadding="5" cellspacing="0">';
       echo '<tr class="schon"><td bgcolor="#00CC00" width="25%">Gew&auml;sser</td><td bgcolor="#00CC00" width="12%">Sperre von:</td><td bgcolor="#00CC00" width="12%">Sperre bis:</td><td bgcolor="#00CC00" width="51%">Beschreibung</td><tr>';
      $erg = db_query('SELECT * FROM `prefix_gewsperre` WHERE von != 0000-00-00 ORDER BY id');
    	while ($row = db_fetch_row($erg))
            {
              $date1 = new DateTime($row2['von']);
              echo $date1->format('d.m.Y')."<br />";
    		  echo '<tr class=tabelle><a href="#"><td> '.$row[1].' </td><td> '.$row[2].' </td><td> '.$row[3].' </td><td> '.bbcode($row[4]).'';
    		}
       echo '</td></a></tr>';
       echo '<tr><td colspan="4"><b /> - &Auml;nderungen m&ouml;glich!</td></tr></table>';

    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    blakedj06 gelöschter User
    Jo das machst Du am besten direkt in der SQL Abfrage.

    db_query('SELECT DATE_FORMAT(von,"%d.%m.%Y - %H:%i") AS von, * FROM `prefix_gewsperre` WHERE von != 0000-00-00 ORDER BY id');
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo blakedj06,
    danke für die schnelle Antwort. Habe folgende Zeile eongefügt, mit Ergänzung or die(mysql_error());
    $erg = db_query('SELECT DATE_FORMAT(von, "%d.%m.%Y") AS von, * FROM `prefix_gewsperre` ORDER BY id') or die(mysql_error());

    Nach dem Einfügen bekomme ich folgende Fehlermeldung:
    [quote]MySQL Error:
    1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* FROM `ic1_gewsperre` ORDER BY id' at line 1
    in Query:
    SELECT DATE_FORMAT(von, "%d.%m.%Y") AS von, * FROM `ic1_gewsperre` ORDER BY id

    Debug backtrace:
    @ mysql.php:46 -- debug_bt()
    @ mysql.php:64 -- db_check_error(...)
    @ gewsperre2.php:21 -- db_query(...)
    @ index.php:18 -- require_once(...)

    You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* FROM `ic1_gewsperre` ORDER BY id' at line 1[/code]
    Habe die Stunden und Sekunden weggelassen und auch die Datumsumwandlung. Die Fehlermeldung bleibt. Wo könnte der Fehler liegen oder was sagt die Fehlermeldung aus?´Habe PHP Version 5.6.24 installiert unter XAMPP for Windows 5.6.24
    MfG heinz2


    Zuletzt modifiziert von heinz2 am 19.01.2017 - 13:31:22
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    blakedj06 gelöschter User
    Ach mist hab es verdreht.

    So ist es richtig:

    db_query('SELECT *,DATE_FORMAT(von,"%d.%m.%Y - %H:%i") AS von FROM `prefix_gewsperre` WHERE von != 0000-00-00 ORDER BY id');
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo blakedj06,
    Danke für die Mühe, aber das Datum dreht sich nicht ins deutsche Format. Ich werde die weiter oben erwähnte Variante nehmen. Dort habe ich nur noch das Problem, dass die Umlaute nicht richtig ausgegeben werden. Habs mal kurzfristig freigeschalten unter genannter betroffene Homepage: und da Gewässersperre2.
    MfG heinz2


    Zuletzt modifiziert von heinz2 am 20.01.2017 - 00:51:35
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    blakedj06 gelöschter User
    Ich glaube dann habe ich etwas falsch verstanden. Ich schreibe Dir mal eine PN.
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Zusammen,

    so gehts, zwei Datumsfelder hintereinander und deutsches Datumsformat:
    $erg = db_query('SELECT von, DATE_FORMAT(von,"%d.%m.%Y"), zahl, bis, DATE_FORMAT(bis,"%d.%m.%Y"), text AS von_formatiert FROM `prefix_gewsperre` WHERE von != 0000-00-00 ORDER BY id');

    MfG heinz2
    kann geschlossen werden


    Zuletzt modifiziert von heinz2 am 22.02.2017 - 19:01:46
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten