Php priorisierung

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

  • Php priorisierung

    Hallo allerseits,

    Ihc bin Neu im PhP entwicklung, une habe wenig erfahrung, deswegen Wende ich mich an Euch mit der Hoffnung auf Hilfe.

    Ich habe einSpiel Programiert wo jedes mal ein Bild aus dem Datenbank geladen wird. zZ sind ca. 30 Bilder im Datenbank also 30 Verschiedene Spiele.
    Bis jetzt habe ich es so Implementiert das jedesmal wo ein User auf der webseite kommt und das spiel startet , wird ein Bild samt einstellung aus der datenbank zufällig geladen.
    Folgende SQl Aufruf lädt die einzelne Spiele
    Code:
    SELECT * FROM tabelle WHERE active ='1' ORDER BY RANDOM() LIMIT 1"
    Nun wil mein Chef das die zuletzt hingefügte Spiele als erstes auftauchen und nciht mehr Zufällig. DH:
    Besucher1 will spielen wird der letztes hingefügtes objekt geladen
    Besucher2 bekomtm das voletztes hingefügtes Objekt.
    Besucher3 das Objekt davor.
    etc...
    Sollen alle Bilde durschgespielt werden, wir dvon vorne angefangen.

    Mindestens Anforderung ist so ein Art Priorisierung einzubauen, wo die zuletzt hingefügte Objekte am heifigsten auftauchen.

    Mit fällt da wirklcih kein Idée wie ich das machen könnte.Eine gute Idee würde mir Reichen.

    Ich Danke Euch um Eure Hilfe.

    Grüsse

    Benjamin

  • #2
    Hallo,

    um so etwas geht es hier grad: http://www.php-resource.de/forum/sql...-bestimmt.html

    Vielleicht ist da schon was für dich dabei

    Gruß,

    Anja
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      @Anja: Das wird ihm nicht helfen, sein Problem ist anders. Er hatte bisher den Zufall verwendet, will jetzt aber weg davon.

      Du brauchst zunächst mal eine Spalte anhand der du sortieren kannst, den Timestamp des Hinzufügens oder eine laufende Nummer. Dann brauchst du noch eine Spalte in der die Einträge als benutzt markiert werden können.
      Zur Auswahl des ersten noch unbenutzen Bildes genügt dann
      SELECT ... FROM ... WHERE used != 1 ORDER BY created DESC
      Wenn das einen Eintrag liefert, musst du ihn sofort* als benutzt markieren (UPDATE ... SET used = 1 WHERE id = ...). Bekommst du keinen Eintrag, sind schon alle Bilder benutzt. In diesem Fall willst du von vorn anfangen - also alle als unbenutzt markieren (UPDATE ... SET used = 0) und von vorn anfangen (o.g. SELECT).

      *) Stichwort LOCK TABLES

      Kommentar


      • #4
        Oder man lässt für die Anzahl der Benutzungen einen Zähler hochzählen - und aus allen Bildern mit minimalem Zählerstand wird dann zufällig eins ausgewählt.

        Ist halt die Frage, ob man noch "ein bisschen Zufall" drin haben will, oder nicht.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hallo,
          Danke Euch für Eure Hilfreiche Antworten

          Ich habe nun 2 Möglichkeiten,
          *entweder die Idee von Anja
          *oder ich speicher in eien Spalte der Datum der letztes erscheinen. Die neue Bilder bekomen dann ein altes Datum damit die als erstes auftauchen. Damit verliert man halt den zufall faktor, was mir persönlich nicht gefällt. muss aber mein Chef enscheiden.

          Die 2te Möglichkeit, klingt kompliziert. Aber mal sehen was draus wird.

          Danke
          Grüsse

          Benjamin

          Kommentar


          • #6
            Um die zweite Variante noch komplizierter zu machen, dafür aber den Zufallsfaktor wieder rein zu bringen, kannst du auch folgendes tun:

            Du bildest die Differenz des größten und des kleinsten "zuletzt erschienen"-Datums und bekommst die Anzahl der Sekunden. Diese multiplizierst du mit rand()*rand()*rand(). Das Ergebnis (in Sekunden) addierst du zum kleinsten Datum (ältestes Bild). Dieses Datum nutzt du dann, um das Bild abzufragen, dass gerade noch gleich alt oder älter ist (LIMIT 1).

            Durch die kubische Gewichtung werden mit wesentlich größerer Häufigkeit alte Bilder verwendet.

            Gruß,

            Anja
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Zitat von melaoueh Beitrag anzeigen
              *oder ich speicher in eien Spalte der Datum der letztes erscheinen. Die neue Bilder bekomen dann ein altes Datum damit die als erstes auftauchen. Damit verliert man halt den zufall faktor, was mir persönlich nicht gefällt. muss aber mein Chef enscheiden.
              Dein Chef hatte das bereits entschieden, zumindest hast du das im ersten Beitrag behauptet:
              Nun wil mein Chef das die zuletzt hingefügte Spiele als erstes auftauchen und nciht mehr Zufällig. DH:
              Besucher1 will spielen wird der letztes hingefügtes objekt geladen
              Besucher2 bekomtm das voletztes hingefügtes Objekt.
              Besucher3 das Objekt davor.
              etc...
              Sollen alle Bilde durschgespielt werden, wir dvon vorne angefangen.
              Das ist eine klare Anforderung und sie enthält keinerlei Zufall. Ob dir das persönlich nun gefällt oder nicht, ist wohl irrelevant.

              Kommentar


              • #8
                Zitat von AmicaNoctis Beitrag anzeigen
                ...
                Danke, klingt gut und interessant. Muss ich mal ausprobieren.


                Zitat von onemorenerd Beitrag anzeigen
                Das ist eine klare Anforderung und sie enthält keinerlei Zufall. Ob dir das persönlich nun gefällt oder nicht, ist wohl irrelevant.
                jein. So klar war die Anforderung nicht, man will halt das die zu letzt hingefügte Bilder ein bessere Chance haben aufzutauchen (weil die schön Neu sind und interessant)

                Bilder werden für Spiele verwendet: Puzzle,..


                Grüsse und Danke

                Benjamin

                Kommentar

                Lädt...
                X