Zufallsbild

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

  • Zufallsbild

    Hallo,

    Wie kann ich mit Hilfe von PHP ein Zufallsbild anzeigen lassen, das mit jeder Stunde wechselt.

    Ein Script für das Zufallsbild hab ich schon gefunden. http://www.ayom.com/faq/zufallsbild-a-639.html

    Aber ich hab es noch nicht geschafft, dass sich das Bild im Stundentakt ändert.

    Diese Zeile müsste man irgendwie anpassen, dass das Bild nur im Stundentakt wechselt.


    <?mt_srand((double)microtime()*1000000);?>



    Für eine schnelle Hilfe, wäre ich sehr dankbar.


    Mit freundlichen Grüßen:

    Martin

  • #2
    das hat damit garnix zu tun, das ist nur ne initialisierung des zufallsgenerators....
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Nur mal grob skizziert ein Ansatz zur Vorgehensweise:
      In einer Datei oder einer Datenbank legst du initial einen Timestamp und den Index des aktuellen Bildes ab (Bsp: 2005-12-19-03-57;123). Bei jedem Aufruf des Scriptes holst du dir den Systemtimestamp und vergleichst ihn mit dem gespeicherten, aber nur über die Werte Jahr,Monat,Tag,Stunde. Stimmen sie überein, nimmst du den Bilddateiindex aus der Datei/Datenbank, wenn nicht initialisierst du mit deiner srand-Funktion den Zufallsgenerator und erzeugst mit rand(0,Anzahl der Bilder) einen neuen Zufallsindex und speicherst diesen mit einem neuen aktuellen Timestamp in der Datei/DB.

      Kommentar


      • #4
        Könntest du mir bitte ein Beispielscript posten. Ich kann deinen Gedanken nicht ganz folgen.

        Für eine Beispiel wäre ich sehr dankbar.

        Kommentar


        • #5
          Naja .. wenn er innerhalb einer Stunde immer die gleichen Zufallszahlen generieren will hat das durchaus was mit mt_srand() zu tun ...
          PHP-Code:
          mt_srand((int)(time()/3600)); 
          sollte Ihm weiterhelfen ...
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            www.cronjob.de?
            Kannst doch jede Stunde mit nem script n Bild per Zufall auswählen und in ne Datenbank speichern lassen. fertig!
            Der Mensch ist ein Tier das zuviel denkt!

            Kommentar


            • #7
              da stellt sich das nächste Problem, um sicher zu sein das jede Stunde ein anderes Bild angezeigt wird müsste ich mit einer if-anweisung den Dateinamen der in der Datenbank steht mit dem Dateinamen des ermittelten Bildes vergleichen, wenn der ermittelte Name nicht gleich ist, soll der Dateiname in die DB geschrieben werden wenn er gleich ist soll das Script solange ausgeführt werden bis ein noch nicht in der Datenbank eingetragener Name ermittelt wurde.

              Wie müsste ich da vorgehen?

              Kommentar


              • #8
                Aaalsooo...

                Wenn du n gscheites Datenbank Design hast, hast du doch bestimmt ne id für deine Bilder, dann würd ich eher die vergleichen als den Dateinamen. Wie auch immer. Wenn die Bilder eh in einer Datenbank stehen, würd ich der Tabelle einfach n Bool feld hinzufügen und in dem Script, das stündlich ein neues Bild auswählt, beim Ausgewählten das Feld auf true setzen und bei der Abfrage einfach die, die bereits ausgewählt waren, ausschließen. (where !ausgewaelt)
                Mit nem weiteren Cronjob kannst du so, alle paar Tage oder wann du willst, das Feld wieder komplett auf false setzen und dann gehts wieder von vorne los. Oder du überprüfst halt in deinem stündlichen Script das Bool Feld und wenn alle auf true stehen, also schonmal ausgewaelt waren, setzt du einfach wieder alle auf Null. Wie dus machst bleibt dir überlassen, weiss ja auch nicht genau wie dus am liebsten haben willst. Es gibt immer tausend Möglichkeiten...

                Viel Spass!
                Der Mensch ist ein Tier das zuviel denkt!

                Kommentar

                Lädt...
                X