Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] DB-Abfrage

Einklappen

Neue Werbung 2019

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

  • [Erledigt] DB-Abfrage

    Hallo Leute!

    Ist es möglich aus einer Tabelle in der sagen wir mal 100 Sprüche stehen nur einen am Tag anzuzeigen? Es sollte also jeden Tag ein neuer Spruch angezeigt werden.

    Frag mal blöd*LOL gibt es eine einfache SQL Abfrage oder muss ich mir da etwas zusammenbauen?

    Danke für jeden Tip

    SG
    Fritz


  • #2
    Hallo!

    Also natürlich wenn in einer DB stehen musst die da erst raus holen,aber um zufällige Sprüche anzeigen zu lassen,also jeden Tag ein anderer wirst du arrays nutzen müssen und darüber den Zufall generiren!

    Ob ich damit falsch liege weis ich nicht aber ich denke so müsstest das machen!
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Kommentar


    • #3
      Eine Möglichkeit in MySQL
      Code:
      SELECT
        b.*
      FROM
        (
          SELECT
            To_days(Curdate()) % Count(id) as cid
          FROM
            yourtable
        ) as a
      JOIN
        yourtable as b
      ON
        b.id >= a.cid
      ORDER BY
        b.id
      LIMIT
        1
      Wenn Du allerdings Einträge löscht, wird der Spruch nach der Lücke für so viele Tage wie Einträge fehlen zusätzlich angezeigt.

      Kommentar


      • #4
        Danke für eure Hilfe!

        Denke ist auch nicht das wahre wenn 5 Tage ein Spruch stehen bleibt! Aber vielen DANK für den Ansatz.

        Muss wohl noch weiter überlegen wie man das am besten löst.

        SG
        Fritz

        Kommentar


        • #5
          Du kannst auch eine weitere Tabelle (bei MySQL möglichst Engine=Memory)
          spruchdestages: tag DATETIME, spruch_id
          anlegen und dann die Abfrage
          Code:
          SELECT
            b.*
          FROM
            spruchdestages as a
          JOIN
            sprueche b
          ON
            a.spruch_id=b.spruch_id
          WHERE
            a.tag=Curdate()
          Wenn das kein Ergebnis liefert, ist noch kein Spruch des Tages eingetragen. Dann kannst Du irgendwie eine id ermitteln (wenn es sein muss mit ORDER BY rand()) und in spruchdestages samt Curdate() eintragen.
          Im Regelfall hast Du dann eine Abfrage. Vielleicht ist die auch Query-Cache tauglich. Und einmal am Tag hast Du ein oder zwei Abfragen mehr.

          Kommentar


          • #6
            Es ist ja auch möglich, den Sprich in einer Datei abzuspeichern und dann daraus auszugeben:
            PHP-Code:
            function get_motd(){
                
            $file 'motd.txt';
                
            $mtime date('Ymd'filemtime($file));
                if (
            $mtime date('Ymd')){
                    
            $sql "
                            SELECT
                                spruch
                            FROM
                                sprueche
                            ORDER BY
                                rand()
                            LIMIT 1"
            ;
                    
            $res mysql_query($sql) or exit(mysql_error());
                    list(
            $spruch) = mysql_fetch_row($res);
                    
            file_put_contents($file$spruch);
                }
                return 
            fiel_get_contents($file);

            Gruss
            L

            Kommentar


            • #7
              fehler in der letzten zeile

              return file_get_contents($file);

              Kommentar


              • #8
                Zitat von keinplanvonnix Beitrag anzeigen
                fehler in der letzten zeile
                Wahnsinn
                Gruss
                L

                Kommentar


                • #9
                  werde den vorschlag von lazydog umsetzen - DANKE nochmals

                  Kommentar

                  Lädt...
                  X