WauWau: Array, Textdatei oder Datenbank für "Tip of the Wauwau"?

Hallo,

es ist kein schwerwiegendes Problem, wie der Titel es schon verraten mag.

Also, ich verwende "WAMP", und habe mir überlegt, bei meiner Designumstrukturierung findet doch ein "Tip of the WauWau" noch platz. Das tud er auch wunderbar, ich habe mir überlegt, ob ich einen kleinen (ungefähr "SMS-Länge", also ~400 Zeichen...) "Tip des Tages" einbaue, entschied mich aber dann für einen pro Query zufallstechnisch ausgewählten Tip.

Nun ist so ein kleines bisschen Text es kaum wert, eine eigene Tabelle in meiner DB zu bekommen - vor allem mit einer Spalte...! [ok, dann vieleicht noch eine 2. obligatorische Index/auto increment-spalte]
Eine andere Möglichkeit wäre eine einfache Textdatei, die Tips per irgendein-Sonderzeichen abgetrennt, z.B. "%" oder sowas:

Tip 1
%
Tip 2
%
Tip 3
%
...

Naja, am wenigsten aufwendig für das Script (da es keine Datenbankverbindung starten oder externe Datei parsen, splitten, ... muss) wäre dann wohl ein einfaches array und index per random - oder?
Das wäre aber dann wieder etwas schwieriger zu pflegen, da man immer in einem PHP-Script rumfuchteln muss, um z.B. Tips hinzuzufügen.

Also, popelige Frage, vielleicht fällt euch was besseres ein ;-),

WauWau

--
Wau - hier ist mein Selfcode:
ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
[mein alter sah optisch irgendwie besser aus ;-)]
  1. Hallo,

    Nun ist so ein kleines bisschen Text es kaum wert, eine eigene Tabelle in meiner DB zu bekommen - vor allem mit einer Spalte...! [ok, dann vieleicht noch eine 2. obligatorische Index/auto increment-spalte]

    Naja, wenn Du eh schon eine DB verwendest wäre das eine schnelle und unkomplizierte Möglichkeit...

    Eine andere Möglichkeit wäre eine einfache Textdatei, die Tips per irgendein-Sonderzeichen abgetrennt, z.B. "%" oder sowas:

    Find ich auch eine flotte Lösung solange Du nicht 400000 Tipps abspeicherst :-) Per file() Deine Datei auslesen und per array_rand() einen Tipp ausgeben. A Piece of Cake! (IMHO)

    Naja, am wenigsten aufwendig für das Script (da es keine Datenbankverbindung starten oder externe Datei parsen, splitten, ... muss) wäre dann wohl ein einfaches array und index per random - oder?

    s.o.

    Das wäre aber dann wieder etwas schwieriger zu pflegen, da man immer in einem PHP-Script rumfuchteln muss, um z.B. Tips hinzuzufügen.

    Nein, s.o.

    Grüsse AndreD

  2. Hallo,

    Also, popelige Frage, vielleicht fällt euch was besseres ein ;-),

    du benötigst eine simple Textdatei. Pro Zeile ein Text. In ein Array einlesen (Stichwort: file();), Zufahlszahl bestimmen, entsprechenden Eintrag im Array (echo $array[$zufallszahl];) ausgeben, fertig.

    Gruß,
    _Dirk

    P.S.: Finger weg von der Datenbank! :-)

    1. Hi Dirk, hallo AndreD ([pref:t=72789&m=419277]),

      du benötigst eine simple Textdatei. Pro Zeile ein Text. In ein Array einlesen (Stichwort: file();), Zufahlszahl bestimmen, entsprechenden Eintrag im Array (echo $array[$zufallszahl];) ausgeben, fertig.

      hmmm - und ich überlege halt, was schneller ist und weniger Ressourcen verbraucht [immerhin bei _jedem_ Seitenaufruf...! - vielleicht könnte ich auch am besten noch ein C-Programm aufrufen, was mir einen Tip zurückgibt ;-)] - und wenn der script erst eine Textdatei bearbeiten muss...

      P.S.: Finger weg von der Datenbank! :-)

      Wieso: ->AndreD-Zitat->

      Naja, wenn Du eh schon eine DB verwendest wäre das eine schnelle und unkomplizierte Möglichkeit...

      andererseits überlege ich da, ob eine Verbindung mit der db vielleicht nicht mehr zeit als meine Tips in Anspruch nimmt...

      [Textmöglichkeit:]

      Find ich auch eine flotte Lösung solange Du nicht 400000 Tipps abspeicherst :-) Per file() Deine Datei auslesen und per array_rand() einen Tipp ausgeben. A Piece of Cake! (IMHO)

      Dass das einlesen der Datei kein Problem darstellt ist klar, dass es schon mehrere 100 werden können auch.

      Hmmm, an file() habe ich gar nicht gedacht, zeilenweises einlesen wäre gar nicht schlecht. Ich dachte eher an sowas wie:

      Das ist Tip1. er beinhaltet natürlich, dass blabla besser als bloblo ist, und das auch!
      Mehr gibts unter <a href="/server/help/extra/tip/blabla.php">der großen Infoseite!
      %
      Und das ist Tip3
      und eine neue zeile
      %
      blabla

      Hierbei hätte ich die Teile erst per "%" splitten müssen, dann trimmen, .... pff - aber file() ist keine schlechte idee.

      na dann,

      WauWau

      --
      Wau - hier ist mein Selfcode:
      ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
      [mein alter sah optisch irgendwie besser aus ;-)]
      1. Hallo,

        Dass das einlesen der Datei kein Problem darstellt ist klar, dass es schon mehrere 100 werden können auch.

        für eine derartige Aufgabe reichen reine Textdateien an Stelle einer Datenbank locker aus. Selbst, wenn es 1000 oder mehr Tipps werden sollten, stellt das keine große Herausforderung dar.

        Gruß,
        _Dirk

        P.S.: Sämtliche Kommentare zu allen Artikeln meines Seitenschweins liegen in nur einer einzigen CSV-Datei, die bei jedem Aufruf ausgelesen wird. Sogar beim Betreten der Seite - also nichtmal der Kommentaransicht! - oder einer Archivseite wird die Datei allein zu dem Zweck ausgelesen, die Anzahl der Kommentare eines Artikels anzuzeigen. Und falls du mal einen Counter wie z.B. BBClone, der ohne Datenbank arbeitet, auf einer größeren und gut besuchten Webseite verwendest, kannst du dir vorstellen, wie oft dort ein Zugriff stattfindet.

        1. Hi,

          Dass das einlesen der Datei kein Problem darstellt ist klar, dass es schon mehrere 100 werden können auch.
          für eine derartige Aufgabe reichen reine Textdateien an Stelle einer Datenbank locker aus. Selbst, wenn es 1000 oder mehr Tipps werden sollten, stellt das keine große Herausforderung dar.

          na klar - dachte nur es wäre vielleicht ressourcensparender ein db-query bei einer menge von 1000 Tips zu machen anstatt einem 1000er-Array...

          P.S.: Sämtliche Kommentare zu allen Artikeln meines Seitenschweins liegen in nur einer einzigen CSV-Datei, die bei jedem Aufruf ausgelesen wird. Sogar beim Betreten der Seite - also nichtmal der Kommentaransicht! - oder einer Archivseite wird die Datei allein zu dem Zweck ausgelesen, die Anzahl der Kommentare eines Artikels anzuzeigen. Und falls du mal einen Counter wie z.B. BBClone, der ohne Datenbank arbeitet, auf einer größeren und gut besuchten Webseite verwendest, kannst du dir vorstellen, wie oft dort ein Zugriff stattfindet.

          Ich habe mein News-System von Anfang an auf DB-Basis aufgebaut und würde nie zu csv zurückschreiten - ziemlich komisch.

          Tja, zu deiner HP: Ich persönlich finde es viel dümmer, horizontal zu scrollen anstatt vertikal.

          Wauwau

          --
          Wau - hier ist mein Selfcode:
          ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
          [mein alter sah optisch irgendwie besser aus ;-)]
          1. Hallo,

            Ich habe mein News-System von Anfang an auf DB-Basis aufgebaut und würde nie zu csv zurückschreiten - ziemlich komisch.

            warum also dieser Thread hier?

            Tja, zu deiner HP: Ich persönlich finde es viel dümmer, horizontal zu scrollen anstatt vertikal.

            ...

            Gruß,
            _Dirk

            1. Hi _dirk,

              Ich habe mein News-System von Anfang an auf DB-Basis aufgebaut und würde nie zu csv zurückschreiten - ziemlich komisch.

              warum also dieser Thread hier?

              Geht es hier um News-Systeme oder kurze kleine tips, die nicht mehrere Datenfelder beanspruchen? Außerdem, hier ist mein fertiger Script, eingebaut in die "Grundklasse" meiner Seite (die zahlreiche Methoden und mehr für die Seitengenerierung bietet:)

              function tip_of_the_WauWau($nummer=false)
                {
                  $chosentip = ($nummer ? $nummer : (isset($_GET["x-tip"]) ? $_GET["x-tip"] : false));
                  $datas = file($this->webserver["include"]."tips.txt");
                  return $datas[($chosentip && isset($datas[$chosentip]) ? $chosentip : mt_rand(0, count($datas)-1))];
                }

              Sieh'st du mal: Kannst du sogar gleich -nur-einen-bestimmten-Tip- anzeigen, und zwar mit ?x-tip=[NUMMER], oder auch die Methode per $site->tip_of_the_WauWau([NUMMER]) aufrufen, oder einfach nur normal aufrufen und einen zufallstip zurückbekommen.

              Naja, ist nur eine poplige kleine Funktion, und ich suche darüberhinaus noch Tips für Windows.

              Tja, zu deiner HP: Ich persönlich finde es viel dümmer, horizontal zu scrollen anstatt vertikal.
              ...

              Ok, man kann sich damit anfreunden, es ist mal was anderes...

              WauWau

              --
              Wau - hier ist mein Selfcode:
              ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
              [mein alter sah optisch irgendwie besser aus ;-)]