DB auslesen via rotation?

netter_mller

Chef vom Dienst
ID: 334648
L
1 März 2009
766
30
Guten Abend,

wie der Thread Titel schon sagt würde ich gern bestimmte Werte aus der DB via Rotation anzeigen lassen.

Die Daten werden aktuell in einer php angezeigt " ohne Login / Session " dies soll auch so bleiben, nur wie könnte man das umsetzen, dass zum beispiel Besucher x wenn er die Seite um 18.20 Uhr besucht hat und um 18:23 Uhr wieder kommt, dass ein andere Text angezeigt wird?

aktuell sind nur 4 einträge in der Tabelle

id << auto
datum
News
Kategorie

PHP:
<?

$result = mysql_query("SELECT datum, News, kategorie FROM news");
while ($row = mysql_fetch_assoc($result)) {
  ?>

PHP:
<? echo $row['datum']?>

wäre euch für ansätze ratschläge dankbar ;)
 
Die Daten werden aktuell in einer php angezeigt " ohne Login / Session " dies soll auch so bleiben, [...]
HTTP ist zustandslos.

Entweder du brichst deine Regel und setzt doch eine Session ein oder du hast keine Ahnung, was der Besucher zuletzt gesehen hat, weil du nicht zuordnen kannst.
 
Ich habe mir mal eine 2. Meinung eingeholt und

PHP:
$result = mysql_query("SELECT `datum`, `News`, `kategorie` FROM `news` ORDER BY rand() LIMIT 2");
while ($row = mysql_fetch_assoc($result)) {

    echo $row['datum'].'<br />'.$row['News'];


}

ist für meine Zwecke sehr gut, somit scheint es doch ein Lösung gegeben zu haben :biggrin:

dank geht hier an lokutos
 
Das ist aber keine wirkliche Lösung, da es einfach vom Zufall abhängt, ob der Nutzer bei seinem zweiten Besuch wirklich einen anderen Wert angezeigt bekommt als beim ersten Mal.

Eleganter wäre eine Lösung, die die IP des Nutzers speichert und anhand dieser über ein Ausschlussverfahren den nächsten anzuzeigenden Wert bestimmt. Statt IP ginge natürlich auch ein eindeutiges Cookie beim Nutzer oder sonst irgendein Wert, mit dem man den Nutzer identifizieren kann.
 
ein Cookie klingt hier sinnvoller als eine IP.
Gekoppelt mit einer Session wäre es eineindeutig.
Session Cookies sind nicht gleich den normalen Cookies, falls das jemand gerade denkt, obwohl man das eine mit dem anderen wechseln kann wenn man will als Webseitenbetreiber...

Aber wer nicht den Aufwand betreiben möchte, muss es halt anderes lösen.

Wenn ich als User keine Cookies akzeptiere, muss ebenfalls was angezeigt werden...
 
Guten Abend,

wie der Thread Titel schon sagt würde ich gern bestimmte Werte aus der DB via Rotation anzeigen lassen.

Die Daten werden aktuell in einer php angezeigt " ohne Login / Session " dies soll auch so bleiben, nur wie könnte man das umsetzen, dass zum beispiel Besucher x wenn er die Seite um 18.20 Uhr besucht hat und um 18:23 Uhr wieder kommt, dass ein andere Text angezeigt wird?

aktuell sind nur 4 einträge in der Tabelle

id << auto
datum
News
Kategorie

PHP:
<?

$result = mysql_query("SELECT datum, News, kategorie FROM news");
while ($row = mysql_fetch_assoc($result)) {
  ?>

PHP:
<? echo $row['datum']?>

wäre euch für ansätze ratschläge dankbar ;)


Du kannst durch zählen wie oft ein bestimmter Text bereits angezeigt wurde, und den mit der niedrigsten Anzahl an "views" zeigst du dann an... benötigst aber ein weiteres Feld zb. ViewCounter vom Typ int / long -und mit jeder Anzeige setzt du den Counter und 1 höher - dies wäre allerdings Userunabhängig. Ansonsten musst du Sessions nutzen und dann benötigst du eine weitere Tabelle die entsprechend die Views mit den Sessions assoziiert. Nur dass Sessions irgendwann ablaufen und wenn der Besucher wiederkommt, er dann wieder "von vorne anfängt" - ne weitere Möglichkeit ist dass die User sich einloggen können - dann kannst du jeden Nutzer eindeutig identifizieren. Ansonsten kannst du Cookies nutzen...