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

  • Fritz73
    hat ein Thema erstellt [Erledigt] DB-Abfrage.

    [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

  • Fritz73
    antwortet
    werde den vorschlag von lazydog umsetzen - DANKE nochmals

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Zitat von keinplanvonnix Beitrag anzeigen
    fehler in der letzten zeile
    Wahnsinn

    Einen Kommentar schreiben:


  • keinplanvonnix
    antwortet
    fehler in der letzten zeile

    return file_get_contents($file);

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    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);

    Einen Kommentar schreiben:


  • David
    antwortet
    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.

    Einen Kommentar schreiben:


  • Fritz73
    antwortet
    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

    Einen Kommentar schreiben:


  • David
    antwortet
    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.

    Einen Kommentar schreiben:


  • litterauspirna
    antwortet
    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!

    Einen Kommentar schreiben:

Lädt...
X