Ankündigung

Einklappen
Keine Ankündigung bisher.

Text aus Datenbank mit Zeitvorgabe auf php-Seite automatisch

Einklappen

Neue Werbung 2019

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

  • Text aus Datenbank mit Zeitvorgabe auf php-Seite automatisch

    Hallo,
    ich möchte einen Text aus meiner Datenbank (ca. 10 Texte enthalten)
    auf Zeit auf meiner PHP-Seite integrieren.

    Soll folgendermaßen funktionieren:

    - Datenbank hat 10 Texte (id 1-10)
    - 1 PHP - Seite

    Diese PHP-Seite hat verschiedene Bereiche (Tabellen),
    die meine Homepage einteilen.
    In einer Zelle soll nun jeden Tag ein Text aus der Datenbank stehen,
    der sich selbst auswechselt. Das Ganze soll aber in Reihenfolge geschehen (id1, id2, id3, usw.), und nicht wie ein Zufall
    (id3, id1, id4, usw.) funktionieren.

    1. Wie mach ich sowas ?
    2. Ist das mit PHP zu machen, oder nur mit Java Script ?

    DANKE.
    Chris.

  • #2
    hm, naklar geht das mit PHP, moment, lass mich mal tüffteln...

    erstmal holst du den aktuellen time-stamp

    $now=time();

    Dann

    $now_tag=(int)($now / (60*60*24));

    so, dann hat jeder Tag eine einzigartige Zahl! Nehmen wir mal an 18331.

    machste einfach $rest=$now_tag % 10; (wäre in dem Fall 1)

    $id_text=$rest;

    if ($rest == 0)
    {
    $id_text=10;
    }

    und dann nur noch aus der DB auslesen

    Kommentar


    • #3
      hmmmm

      Wenn ich also folgendes angebe:

      <?
      $now=time();
      $now_tag=(int)($now / (60*60*24));
      $rest=$now_tag % 10;
      $id_text=$rest;
      if ($rest == 0)
      {
      $id_text=10;
      }
      echo $id_text;
      ?>


      kommt 7 raus.
      Das heißt ja dann, das heut der 7 Eintrag (also id7) aus der Datenbank
      dran währe.
      Aber wie lese ich jetzt die Daten aus ?

      Danke für Hilfe.

      Kommentar


      • #4
        ganz einfach:

        $row=mysql_fetch_assoc(mysql_query("SELECT text FROM datenbank WHERE id='$id_text'"));

        echo $text=$row['text'];

        Kommentar


        • #5
          Ok. Funktioniert auch. Aber...

          wenn jetzt die 10 Tage um sind,
          fängt er dann wieder mit 1 an, wie er soll ?



          Ich will nämlich die 10 Artikel (Texte) schon fertig im Netz haben,
          dass diese sich dann von selbst, am Tag X (also jeden Tag) aus der Datenbank aktuallisieren.
          Funktioniert ja mit obiger Antwort anscheinend.
          Nur während jetzt z.B.: Tag 3 um ist, möchte ich ja schon wieder
          die Texte 1 und 2 ändern, so dass diese dann nach den
          10 Tagen wieder mit ip1 und ip2 aufgerufen werden können.

          Geht dass ?
          Danke.

          Kommentar


          • #6
            nehmen wir an wir haben Tag 3.
            Willst du dann "von Hand" die Texte 1 und 2 ändern?! Wenn ja, kein Problem! Wenn der Tag 1 wieder kommt, nimmt er dann den Text, den du zuletzt eingefügt hast!

            Meintest du das so?!

            Kommentar


            • #7
              jepp.

              Ich gehe von 10 Tagen aus, und benötige dafür 10 Texte.
              Diese sind dann schon in der Datenbank gespeichert.

              Diese 10 Tage gelten für mich nur als Polster,
              wenn ich nicht immer jeden Tag Zeit hab,
              neue Texte ins Netz zu stellen.

              Wie genau funktioniert eigentlich dieses php-skript von dir ?
              Ich versteh diese Funktion mit der Zeit garnicht.
              Was ich verstehe ist:

              $now=time();
              BEDEUTET: Die jetzt Zeit.
              $now_tag=(int)($now / (60*60*24));
              BEDEUTET: int steht für Die jetzt Zeit soll duch 24Std.60Min.60Sek.
              geteilt werden.

              $rest=$now_tag % 10;
              BEDEUTET: Der Variablen $rest wird $now_tag zugeordnet.
              Aber die 10% sind mir spanisch. Vielleicht ist ein 10´tel der Zeit

              $id_text=$rest;
              BEDEUTET: Der Variablen $id_text wird die Variable $rest zugeordnet.
              if ($rest == 0)
              BEDEUTET: Wenn die Zahl der Variablen $rest = 0 / nur wo ist die dann Funktion? Gibst da kein if.....than.....
              {
              $id_text=10;
              BEDEUTET:
              }

              Wenn du Lust hast, kannst du mir das Schrittweise erklären ?

              Und was bedeutet eigentlich immer diese {} Klammern ?
              Danke.

              Kommentar


              • #8
                so, dann fange ich mal an:

                mit dem $now=time(); machst du einen sogenannten time-stamp. Das ist das mit dem 1970, wo ich dir erklärt habe! Also alle Sekunden...
                Damit du aber die aktuelle ID des Tages rausbekommst, machst du die Zahl einfach erst durch 60 (aktuelle Minute), dann nochmal durch 60 (aktuelle Stunde) und nochmal durch 24 (aktueller Tag).

                So, jetzt bekommst du irgendeine Zahl raus, nehmen wir an 18332.

                Wenn du jetzt schreibst

                $rest=$now_tag % 10;

                dann heißt das, du teilst den Betrag $now_tag durch 10 und gibst davon den Rest wieder, also in dem Fall 2.

                Dieses If baust du ein, weil wenn es zB. der 18340. Tag ist, dann wird ja laut Skript der Text mit der ID 0 aufgerufen, es geht aber ja nur von 1-10.

                Also du hast dann eine Bedingung eingebaut

                if (Wenn was so ist...)
                {
                ...dann...
                }

                Mit den {} sagst du nur, wo die Bedingung aufhört, bzw anfängt!


                Haste noch Fragen?!

                Kommentar


                • #9
                  Ja, hab da noch was.

                  Um wieviel Uhr ändert sich denn der Text auf meiner Seite ?
                  Es sollte ja pünktlich am nächsten Tag (also Beginn: 1 Uhr Nachts), wenn jemand meine Seite besucht,
                  geändert sein.

                  Kommentar


                  • #10
                    Mir ist aber gerade was aufgefallen.

                    Die Zeit jetzt: 12638,76424
                    erbibt ja für den heutigen Tag
                    76424 Sekunden = 21,22h
                    Das heisst ja, dass es jetzt 21h22min ist.
                    Stimmt aber nicht mit der tatsächlichen Zeit überein,
                    da es jetzt 20:22 ist.
                    Da ist 1 Stunde zu viel.

                    Wie kommt dass ?
                    Müsste ich dass nicht, wenn ich die genaue Zeit zum Textwechsel
                    angeben möchte, in der Berechnung berücksichtigen, und 1
                    Stunde abziehen ?

                    Kommentar


                    • #11
                      Es ist jetzt 0.30, und immer noch steht es auf Sonntag.

                      Irgendwie klappte das ganze nicht genau.
                      Das Echo gibt jetzt um 00:30 folgendes aus:
                      12638,9384 raus.
                      Das heißt, erst in 616 Sekunden wird die 8 auf 9 erhöht,
                      und es erscheint der Montag.

                      Eigentlich wollte ich, dass um 24:00 das Ganze auf 9 geht,
                      und somit den Montag anzeigt.
                      Also den Text für Montag.

                      hmmm.

                      Kommentar

                      Lädt...
                      X