Zeitausgabe macht Probleme!

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

  • Zeitausgabe macht Probleme!

    Hallo,
    ich habe ein Problem mit einer MySQL Zeitausgabe. Die umformatierung vom timestamp ist kein Problem, aber die Ausgabe.
    Ich erstelle gerade eine neue Newssite für eine Community:
    http://www.playstation2-games.de/ind...ion=startseite

    Das Problem seht ihr bei den Site News. Die erste News wird richtig angezeigt auch mit dem entsprechenden Datum. Aber danach wird immer nur die 2. News und das Datum der 1. news angezeigt. Sehr komisch.
    Hier ist der Code für die Sitenews:


    PHP-Code:
    $abfrage="SELECT * from allnews where cat='Sitenews' ORDER BY `id` DESC";
    $ergebnis=mysql_query($abfrage);
    echo
    "<center>Aktuelle News</center><br>";
     
    $count=0;   
     while((
    $row mysql_fetch_array($ergebnis)) and ($count<=4)) 
      {
       
    $count++;
    echo
    "-&gt; <a href=\"?action=allnews&do=show&id=".$row['id']."\">";
      
       echo 
    $row['headline'];
    echo
    "</a>";
    echo
    "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=\"#CCCCCC\">(";
    echo 
    date("d M Y",mysql_result($ergebnis0"timestamp"));
        echo
    ")</font><br><br>";
      } 
    Ganz untern das mit der Zeit. Wo liegt da der Fehler???
    Bitte um schnelle Hilfe
    Ciao
    Michael
    Ich weiß was RTFM bedeutet und nutze es auch, aber ab und zu muss ich auch mal was posten

  • #2
    hmm, ich weiß jetzt nicht so genau, vielleicht liegts an der null.
    ich persönlich arbeite lieber mit datetime fields, ist komfortabler.
    [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

    Kommentar


    • #3
      Wie würde der codeabschnitt denn mit datetime fields aussehen?
      Was ist denn an der Null falsch?? Wüsste nix.

      Achja am besten in so einem Format:
      z.B.
      Mo. 12:45

      Ciao
      Michael
      Zuletzt geändert von Kawakima; 01.07.2003, 11:23.
      Ich weiß was RTFM bedeutet und nutze es auch, aber ab und zu muss ich auch mal was posten

      Kommentar


      • #4
        datetime hat default-mässig diesen eintrag:0000-00-00 00:00:00, so musst du auch beim insert übergeben.
        ausgabe:
        PHP-Code:
        DATE_FORMAT(datum,'%Y-%m-%d')datum 
        warum willst du plötzlich tag und uhrzeit stehen haben, da nimmst du date(), ansonsten wie oben.
        [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

        Kommentar


        • #5
          naja das oben war ein test ob es richtig ausgelesen wird.
          Ich bin bei Zeiten noch ziemlich unerfahren, und da ich bis vorhin dachte die date funktion etwas zu können, hatte ich erstmal benutzt.

          Ich bekomme das irgendwie nicht hin...

          PHP-Code:
          echo"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=\"#CCCCCC\">(";
          echo 
          date("d M Y",mysql_result($ergebnis0"timestamp"));
              echo
          ")</font><br><br>"
          Wo binde ich da dein

          PHP-Code:
          DATE_FORMAT(datum,'%Y-%m-%d')datum 
          ein??
          Ich weiß was RTFM bedeutet und nutze es auch, aber ab und zu muss ich auch mal was posten

          Kommentar


          • #6
            Das liegt meiner Meinung daran, das mysql_result() in einer while-schleife nicht automatisch auf das nächste Ergebnis gesetzt wird, wenn Du mit '0' arbeitest.

            Möglichkeiten:

            Frage die Zeit gleich so ab:
            PHP-Code:
            SELECT id as idheadline as headlineDATE_FORMAT(timestamp,'%d.%m.%Y') as zeit ... 
            Und dann ein mysql_fetch_assoc.

            Oder:

            Mach eine Funktion, die die Zeit zurückgibt, die Du aus der Schleife aufrufst.

            Oder:
            Informier Dich über die Funktionsweise von mysql_data_seek();

            Aber du hast noch ganz andere Probleme:

            Du machst einen SELECT * statt 'SELECT id as id, headline as headline, timestamp as timestamp...'. Das kann bei Änderungen in der Datenbank einige Probleme machen und ist auch ziemlich unperformant. Timestamp ist auch ein unpassender Feldname, schließlich ist das ein Datenformat, das bringt schnell mal Unklarheiten rein.

            Dann kannst Du auch ein mysql_fetch_assoc machen, das Array ist also deutlich kleiner, weil nicht alles doppelt drin ist (numerisch und assoz.).
            /* Meine Lieblingsantwort: Read The Fucking Manual */

            Kommentar


            • #7
              @dirk:
              weicht zwar jetzt ab, aber warum soll es besser seine daten gleich mit bezeichnung abzurufen als diese in der while schleife zu benennen?
              und welche problem soll das bei einem update bringen?
              [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

              Kommentar


              • #8
                Also bei mir ist diese mysql-basierte Variante deutlich schneller. Ich bekomme den php-Parser schnell in die Knie, mysql aber kaum.

                Und das andere: Ich weiß dann einfach, wo ich hingehen muß, wenn ich was ändere. Du kannst ja hunderte Schleifen für irgendwelche Ausgaben haben, die letztlich aber alle auf dieser einen * - Abfrage aufsetzen.
                Also irgendwann hat die Tabelle vielleicht 30 Felder. Du fragst aber nur nach den dreien. Da finde ich es reichlich unperformant, sinnlose Daten aus weiteren 27 Feldern durchzujagen und dann auch noch in mixed-arrays zu überführen.
                Oder: Du löscht mal ein Feld oder änderst es. Dann mußt Du alle Schleifen durchsuchen. Könntest aber es aber auch in einer konkreten Abfrage einmal anpassen. Die * - Methode sieht immer erstmal bequem aus. Ich weiß aber aus leidvoller Erfahrung, daß sie es nicht ist.
                /* Meine Lieblingsantwort: Read The Fucking Manual */

                Kommentar


                • #9
                  naja, da muss ich wohl widersprechen. wir gehen ja davon aus, daß meherer datensätze gezogen werden, bei einem brauchst du ja eh keine schleife, also warum soll es schneller sein die daten beim select zu benennen, wenn ich das auch in der schleife machen kann, welche ich eh brauche um meine daten darzustellen?
                  und beim update oder löschen spreche ich ja eh direkt die betroffenen daten an und brauch da gar keine schleife, das hat dohc damit gar nichts zu tun.
                  [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

                  Kommentar


                  • #10
                    Geschmackssache, denk ich.
                    Aber in Sachen 27 : 3 wirst Du mir Recht geben, hoffe ich... Und auch, daß für die Operationen hier ein mixed-Array nicht nötig ist, ich rechne die unnötigen Bytes dafür jetzt nicht aus...
                    Und eins noch: Bei den News, die ich auf der Seite da gesehen hab, ist die Schleife garantiert nur einmal durchgelaufen...
                    /* Meine Lieblingsantwort: Read The Fucking Manual */

                    Kommentar


                    • #11
                      Wie ? Was ? Wer?

                      Oh man, eine theorie-Bombe
                      Wie Yoda sagen würde: Noch viel lernen du must!

                      Aber zurück zum Thema.
                      Wie müsste ich eurer Meinung nach diesen Code verfassen damit er schnell und einfach geht und natürlich auch die Zeitangane enthält??
                      Ich weiß was RTFM bedeutet und nutze es auch, aber ab und zu muss ich auch mal was posten

                      Kommentar


                      • #12
                        richtig, geschmackssache! bei dem anderen punkt gebe ich dir klar recht.
                        so geklärt.
                        was macht eigentlich kawakima, weiter gekommen?
                        [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

                        Kommentar


                        • #13
                          So gehts:

                          Du definierst Deine Query (s.o.) am besten mit dem DATE_FORMAT.
                          Du führst Dein Array zusammen.
                          Du machst die Ausgabe.
                          Alles, was Du an Code brauchts, hast Du selbst schon da bzw. steht hier oben drüber.
                          /* Meine Lieblingsantwort: Read The Fucking Manual */

                          Kommentar


                          • #14
                            Original geschrieben von dirk
                            Das liegt meiner Meinung daran, das mysql_result() in einer while-schleife nicht automatisch auf das nächste Ergebnis gesetzt wird, wenn Du mit '0' arbeitest.
                            na so'ne überraschung ... zitat manual:
                            "mixed mysql_result ( resource Ergebnis-Kennung, int Datensatz [, mixed Feld])"

                            int Datensatz, nummer des datensatzes - dass das bei 0 immer der gleiche bleibt, sollte auch dem letzten höhlenmenschen einleuchten.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Ich schätze Deine ganz besondere Art von Höflichkeit so sehr... Wirklich. Erfrischend.
                              Mich irritiert nur immer, wenn ich als "Newbie" sowas beantworte gegenüber einem "JuniorMember", weil es sonst niemand macht...
                              Read The Fucking Manual. Mach ich zu meiner Signatur. Jetzt.
                              /* Meine Lieblingsantwort: Read The Fucking Manual */

                              Kommentar

                              Lädt...
                              X