Probleme beim Auslesen

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

  • Probleme beim Auslesen

    Hallo zusammen,
    ich folgende Syntax geschrieben.
    Ich lasse also alle Daten aus der Datenbank auslesen und kontrolliere dann, welche passen.
    Er gibt mir alle Geburtstage aus, die passen. Jedoch wäre es schön, wenn er mir, falls keine Geburtstage anliegen, "Keine Geburtstage heute" ausgibt.

    Mit der Else-Funktion gibt er mir 200 mal Kein Geburtstag aus, weil dementsprechend 200 Leute kein Geburtstag haben.
    Kennt jemand ne Lösung? Mir wurde ne for-Schleife anstatt while genannt. Das habe ich aber noch nicht geschafft.

    # Datenbank Abfragen
    $abfrage = "SELECT * ,date_format(Geburtsdatum,'%Y.%m.%d') as sdatum FROM DB ORDER BY sdatum";
    $ergebnis = mysql_query($abfrage);
    #Ausgabe Einträge Datenbank
    while($eintrag = mysql_fetch_array($ergebnis))
    {
    $geb = date("d.m.Y", strtotime($eintrag['Geburtsdatum']));
    $geb2 = date("d.n", strtotime($eintrag['Geburtsdatum']));
    $tag2 = date("d", strtotime($eintrag['Geburtsdatum']));
    $monat2 = date("m", strtotime($eintrag['Geburtsdatum']));
    $zeit2 = date("Y", strtotime($eintrag['Geburtsdatum']));
    $Alter = $datum3 - $zeit2;
    #Aktuelle Geburtstage
    if ($geb2 == $date1)
    {
    echo "<TR>";
    echo "<TD align=\"left\" width=\"80\" height=\"10\">".$geb."</TD>";
    echo "<TD align=\"left\" width=\"150\" height=\"10\">".$eintrag['Name']."</TD>";
    echo "<TD align=\"center\" width=\"50\" height=\"10\">".$Alter."</TD>";
    echo "</TR>";
    }
    }

    Gruß Daniel

  • #2
    bestimme schon in der query, ob geburtstage anliegen, gib nur diese daten zurück. solltest du keine daten erhalten, hat heute keiner geburtstag.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Also die Abfrage?
      Da müste ich dann prüfe auf das er nur die ausliest bei denen Geburtstag gleich dem heutigen Tag ist.
      $abfrage = "SELECT * ,date_format(Geburtsdatum,'%Y.%n.%d') as sdatum FROM DB WHERE sdatum LIKE date1 ORDER BY sdatum";

      Diese Anweisung gibt Fehler.

      Kommentar


      • #4
        Original geschrieben von kjdaniel
        Da müste ich dann prüfe auf das er nur die ausliest bei denen Geburtstag gleich dem heutigen Tag ist.
        Koenntest du diesen Satz vielleicht noch mal umformulieren? Ich zumindest habe ihn nicht ganz verstanden.

        $abfrage = "SELECT * ,date_format(Geburtsdatum,'%Y.%n.%d') as sdatum FROM DB WHERE sdatum LIKE date1 ORDER BY sdatum";

        Diese Anweisung gibt Fehler.
        Soll date1 die Variable sein, die das abzufragende Datum enthaelt? Wie waere es dann mit
        PHP-Code:
        $abfrage "SELECT *,
        date_format(Geburtsdatum,'%Y.%n.%d') as sdatum
        FROM DB
        WHERE sdatum LIKE '"
        .$date1."'
        ORDER BY sdatum"

        Huebsch ist das aber immer noch nicht. Und vielleicht hilft dir danach dann noch mysql_num_rows weiter.

        Kommentar


        • #5
          Huebsch ist das aber immer noch nicht.
          mysql kennt das konstrukt NOW(), wenn man damit vergleicht, erhält man ohne php-einsatz alle geburtstage des heutigen tages.
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            Ich gebe zu, ich hatte die ursprüngliche Frage so interpretiert, daß nicht zwingend das aktuelle Datum geprüft werden sollte, sondern dies nur als Beispiel weiter unten diente.

            Kommentar


            • #7
              auch für beliebige daten kann man die berechnung in der query durchführen. somit erhält man immer nur die relevanten daten und spart sich eben ... den rest.
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar

              Lädt...
              X