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
    166
    Beitragswertungen
    1 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 Entwickler
    Registriert seit
    08.02.2007
    Beiträge
    6.372
    Beitragswertungen
    298 Beitragspunkte
    Könntest doch einfach eine if abfrage einbauen das er nur eingräte nimmt wo das Datumsformat ungleich 0000-00-00 ist.
    Wie poste ich falsch?
    Fahrschulplaner.info digitialisiert die Fahrstunden Ihrer Farhschul
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    166
    Beitragswertungen
    1 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 Mitglied
    Registriert seit
    07.08.2008
    Beiträge
    197
    Beitragswertungen
    30 Beitragspunkte
    $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
    166
    Beitragswertungen
    1 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 Mitglied
    Registriert seit
    07.08.2008
    Beiträge
    197
    Beitragswertungen
    30 Beitragspunkte
    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
    166
    Beitragswertungen
    1 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 Mitglied
    Registriert seit
    07.08.2008
    Beiträge
    197
    Beitragswertungen
    30 Beitragspunkte
    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
    166
    Beitragswertungen
    1 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 Mitglied
    Registriert seit
    07.08.2008
    Beiträge
    197
    Beitragswertungen
    30 Beitragspunkte
    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
    166
    Beitragswertungen
    1 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