x-plosiv: wochentag ausgabe funktioniert nicht

hallo liebes forum...ich brauch mal wieder deine hilfe

ich möchte ein datum aus meiner mysql db auslesen und mit Wochentag und Deutschendatumformat formatieren.
dazu habe ich folgendes versucht:

$wochentage = array ("Montag,","Dienstag,","Mittwoch,","Donnerstag,","Freitag,","Samstag,","Sonntag,");

while($row = mysql_fetch_array($result)){
 echo $wochentage[date("w", $row["datum"])];
 echo datumDeutsch2 ($row["datum"]);
}

jetzt gibt es mir immer Freitag aus...egal welches datum ich in der db habe.....wo liegt der fehler?

ich hoffe es kann mir jemand helfen..

danke im voraus

gruss

x-plosiv

  1. Hi

    $wochentage = array ("Montag,","Dienstag,","Mittwoch,","Donnerstag,","Freitag,","Samstag,","Sonntag,");

    while($row = mysql_fetch_array($result)){
     echo $wochentage[date("w", $row["datum"])];
     echo datumDeutsch2 ($row["datum"]);
    }

    Probier mal bei $row nicht datum anzugeben sondern die nummer der entsprechenden spalte (bei 0 beginnend)

    Gruß

    Ralf

    1. hat leider nicht geklappt :-(

      Danke trotzdem

      ps: ich habe jetzt den gesamten quelltext gepostet...ev. kannst du dir die select abfrage nochmals anschauen..danke

  2. Hallo x-plosiv,

    $wochentage = array ("Montag,","Dienstag,","Mittwoch,","Donnerstag,","Freitag,","Samstag,","Sonntag,");

    warum so umständlich? verwende doch die Datumsfunktionen von mysql[1] - die Funktion DATE_FORMAT() dürfte dir weiterhelfen. Einfach im SELECT-Teil ein "DATE_FORMAT(datum,'%w') as wochentag" und dann
    $tagnummer = $row['wochentag'];
    echo $wochentage[$tagnummer];

    while($row = mysql_fetch_array($result)){
     echo $wochentage[date("w", $row["datum"])];

    ich werde zwar aus deiner konstruktion nicht so ganz schlaut, aber du musst im Array mit Sonntag anfangen - da 0 (also das erste Element) Sonntag und nicht Montag ist.

    echo datumDeutsch2 ($row["datum"]);

    mhh... wo kommt die Funktion datumDeutsch2() jetzt her?

    jetzt gibt es mir immer Freitag aus...egal welches datum ich in der db habe.....wo liegt der fehler?

    wie sieht dein query aus? hast du eine Spalte namens datum? welches Format hat die? (ich hoffe doch date o.ä.)

    Grüße aus Nürnberg
    Tobias

    [1] http://www.mysql.de/doc/de/Date_and_time_functions.html

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. hi..danke für deine hilfe...leider klappt es nicht ganz :-( hier mein gesamter code

      ich wäre dir sehr dankbar wenn du mir helfen könntest...danke

      $result = mysql_db_query("fanclubstjakob","select * from spielplan where art = 's' and datum >= NOW() ORDER BY datum LIMIT 0,1");
       $wochentage = array ("Sonntag,", "Montag,","Dienstag,","Mittwoch,","Donnerstag,","Freitag,","Samstag,");
       $tagnummer = $result['wochentag'];

      function datumDeutsch2($datum)
      {
         list($jahr, $monat, $tag) = explode("-", $datum);
         $datum=sprintf("%02d.%02d.%04d", $tag, $monat, $jahr);
         return $datum;
      }

      while($row = mysql_fetch_array($result)){
       echo "<br><div class='schriftklein'> ";
       echo $wochentage[date("w", $row["datum"])];
       echo datumDeutsch2 ($row["datum"]);
       echo "</div>";

      so klappt es immer noch nicht es gibt jetzt immer donnerstag aus.

      jetzt deine version...da kommt immer eine fehlermeldung in der select abfrage...ich kappier nicht ganz wo das date_format hin kommt. ich denke das ist der fehler

      $result = mysql_db_query("fanclubstjakob","select * from spielplan where art = 's' and datum >= NOW() ORDER BY datum LIMIT 1 DATE_FORMAT(datum, '%w')as wochentag");
       $wochentage = array ("Sonntag,", "Montag,","Dienstag,","Mittwoch,","Donnerstag,","Freitag,","Samstag,");
       $tagnummer = $result['wochentag'];
       echo $wochentage[$tagnummer];

      1. Hallo x-plosiv,

        $result = mysql_db_query("fanclubstjakob"

        die Funktion ist veraltet ->http://de3.php.net/mysql_db_query

        ,"select *

        warum fragst du _alles_ ab? ->http://www.dclp-faq.de/q/q-sql-select.html

        $wochentage = array ("Sonntag,", "Montag,","Dienstag,","Mittwoch,","Donnerstag,","Freitag,","Samstag,");

        für was sind eigentlich die Kommata hinter den Tagenamen? die sind doch überflüssig...

        $tagnummer = $result['wochentag'];

        afaik gibt mysql_db_query() eine Kennung zurück - kein Ergebnisarray

        function datumDeutsch2($datum)

        ach da ist sie ja die Funktion :-)

        echo $wochentage[date("w", $row["datum"])];

        hast du dir mal ausgeben lassen, was in $row["datum"] überhaupt drinsteht? vermutlich kann date() damit nichts anfangen...

        jetzt immer donnerstag aus.

        :-)

        jetzt deine version...da kommt immer eine fehlermeldung in der select abfrage...

        und die wäre?

        ich kappier nicht ganz wo das date_format hin kommt.

        <zitat src="[pref:t=50261&m=275312]" author="me">
        Einfach im SELECT-Teil ein "DATE_FORMAT(datum,'%w') as wochentag"
        </zitat>
        das gehört hinter select - da wo dein * steht...

        $result = mysql_db_query("fanclubstjakob","select * from spielplan where art = 's' and datum >= NOW() ORDER BY datum LIMIT 1 DATE_FORMAT(datum, '%w')as wochentag");

        SELECT DATE_FORMAT(datum, '%w') as wochentag,[andere felder] FROM spielplan WHERE art = 's' AND datum >= NOW() ORDER BY datum LIMIT 1
        sollte funktionieren.

        $tagnummer = $result['wochentag'];

        erst noch mysql_fetch_*()

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. danke vielmals...jetzt hats geklappt...danke :-)

          jetzt habe ich noch eine frage...falls du noch eine minute zeit für mich hast.

          ich gebe ja jetzt noch das datum an sich aus...und formatiere es auf deutsch. kann ich das auch direkt in der abfrage machen?

          danke für die links...hab heute wieder viel gelernt... :-)

          1. Hallo x-plosiv,

            ich gebe ja jetzt noch das datum an sich aus...und formatiere es auf deutsch. kann ich das auch direkt in der abfrage machen?

            sicher - wie das geht steht auf der Seite die ich dir in meinem ersten Posting genannt habe (gleiche Funktion) - du musst dir eben die passenden Parameter zusammensuchen.

            Grüße aus Nürnberg
            Tobias

            --
            Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  3. Moin!

    jetzt gibt es mir immer Freitag aus...egal welches datum ich in der db habe.....wo liegt der fehler?

    Datenbanken haben in der Regel tolle Datumsfunktionen, welche bestens in der Lage sind, das Datum schon vor dem Auslesen auf das gewünschte Format zu bringen.

    Du solltest also die Wandlung des Datums in deine SQL-Abfrage mit einbauen. Falls du MySQL verwendest: http://www.mysql.com/doc/de/Date_and_time_functions.html, DATE_FORMAT().

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|