kostenloser Webspace werbefrei: lima-city


nächsten anstehenden Termin aus Datenbank anzeigen?!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sandriene

    sandriene hat kostenlosen Webspace.

    hi! hoffentlich kann mir tag/jemand">jemand helfen!

    ich hab ne mySQL tabelle die sieht so aus:

    datum veranstaltung
    2008-02-02 test
    2008-04-06 test 2
    ...


    nun möchte ich das auf der startseite immer der nächstanliegenste termin erscheint, aber nicht so formatiert, wie in der datenbank, sondern 01.01.2008.
    das hab ich auch hinbekommen, aber die anzeige, der nächsten termins will nicht klappen.

    das hier hat nicht geklappt, dabei hat er immer ALLE termine angezeigt, und nicht nur die nach dem heutigen Datum, sondern auch die davor.

    <?php

    require (\"admin/config.inc.php\");

    $heute = date(\"Y-m-d\")

    $satz = mysql_query(\"SELECT * FROM $dbtermine WHERE datum > $heute ORDER by datum\" );
    while ($row = mysql_fetch_array($satz)) {
    extract($row);

    $datum = explode(\"-\", $datum);

    echo \"$datum[2].$datum[1].$datum[0]<br><br>\";

    }

    ?>


    dann habe ich es hiermit versucht:

    <?php

    require (\"admin/config.inc.php\");

    $heute = date(\"Y-m-d\");

    $satz = mysql_query(\"SELECT * FROM $dbtermine WHERE datum > $heute ORDER by datum\");

    while ($row = mysql_fetch_array($satz)) {
    extract($row);

    if ($datum >= $heute)
    {
    $datum = explode(\"-\", $datum);

    echo \"<b>$datum[2].$datum[1].$datum[0]</b><br><br>\";

    }
    }

    ?>

    da zeigt er zwar NUR die nachfolgenden an, aber ALLE und nicht nur das eine nächste.

    tja und nun komme ich nicht weiter. hab es schon mit LIMIT probiert, aber das klappt auch nicht so richtig. ich müsste eine riesenzahl: zb 5 eingeben und es würde mir das eine nächste anzeigen.

    sobald das heutige datum allerdings wechseln würde klappt es dann schon wieder nicht.

    jemand ne idee? oder noch besser: ahnung davon??
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Mir fallen 2 Möglichkeiten ein.


    1.

    LIMIT sollte eigentlich gehen. Versuchs mal mit \"SELECT * FROM $dbtermine WHERE datum >= $heute ORDER BY datum ASC LIMIT 1\". Dann müsstest du die Datensätze in aufsteigender Reihenfolge des Datums geliefert bekommen.


    2.

    Bau vor der while Schleife noch ne Variable ein, z.B. \"$suchen = true\" und die setzt du nach dem Auffinden des ersten passenden Datensatzes auf false. Und brichst halt die Schleife durch Abfrage ab.

    ODER du benutzt einfach ein \"break;\" in dem if-Block in der while Schleife. Dadurch wird die weitere Ausführung der Schleife abgebrochen.

    Beitrag geändert: 12.3.2008 15:08:57 von xenodez
  4. Autor dieses Themas

    sandriene

    sandriene hat kostenlosen Webspace.

    oh vielen vielen dank,

    dass mit dem break klappt! *freu*

    danke sehr
  5. Du könntest statt
    if ($datum >= $heute)

    auch einfach
    if ($datum == $heute)

    schreiben, dann sollte es auch gehen und er liefert dir alle Termine des aktuellen Tages.
  6. Und was ist dann, wenn der nächste anstehende Termin erst am nächsten Tag ist?

  7. Und was ist dann, wenn der nächste anstehende Termin erst am nächsten Tag ist?

    Da hast du recht...Das hab ich nicht beachtet.
    Ich finde die Datumsformatierung von MySQL eh blödsinnig, die Arbeit mit Timestamps vereinfacht das wesentlich, dann muss ich nur mein Query so formulieren, wie ich es brauche. Bei einem Datum im MySQL-Format ist der > oder >= Vergleich ziemlich sinnlos, er wird immer alle Ergebnisse ausspucken und man muss sie danach noch extra sortieren.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!