Wie geht das?

decete

Grünschnabel
Kann mir jemand erklären wie folgendes geht:
Ich brauche was bzw wie geht das das eine datei alle 2 std nen user aus der Datenbank holt und als Zufalluser ausgibt:

So sieht die msql Struktur aus:
PHP:
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(25) NOT NULL default '',
`pw` varchar(100) NOT NULL default '',
`email` varchar(150) NOT NULL default '',
`rang` int(2) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;



CREATE TABLE `settings` (
`id` int(11) NOT NULL auto_increment,
`setting` varchar(150) NOT NULL default '',
`group` varchar(150) NOT NULL default '',
`value` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=18 ;



INSERT INTO `settings` VALUES (1, 'login', 'page', 'login.php');
INSERT INTO `settings` VALUES (2, 'randompw', 'main', '0');
INSERT INTO `settings` VALUES (3, 'confirmationemail', 'main', '0');
INSERT INTO `settings` VALUES (4, 'protection', 'page', 'protection.php');
INSERT INTO `settings` VALUES (5, 'error', 'page', 'error.php');
INSERT INTO `settings` VALUES (6, 'forwarding', 'page', 'test.php');
INSERT INTO `settings` VALUES (7, 'pw', 'error', 'Ihre Passwort Eingaben sind nicht identisch.');
INSERT INTO `settings` VALUES (8, 'name', 'error', 'Der von ihnen gewählte Benutzername wird bereits verwendet.');
INSERT INTO `settings` VALUES (9, 'name2', 'error', 'Sie haben keinen Benutzernamen angegeben.');
INSERT INTO `settings` VALUES (10, 'pw2', 'error', 'Sie haben kein Passwort angegeben.');
INSERT INTO `settings` VALUES (11, 'email', 'error', 'Sie haben keine E-Mailadresse angegeben.');
INSERT INTO `settings` VALUES (12, 'register', 'success', '<b>Ihre Anmeldung war erfolgreich.</b><br>');
INSERT INTO `settings` VALUES (13, 'register2', 'success', '<b>Ihre Anmeldung war erfolgreich.</b><br>\r\nSie haben eine E-Mail mit allen benötigten Daten erhalten.');
INSERT INTO `settings` VALUES (14, 'profil', 'success', '<b>Ihre Änderungen wurden übernommen</b><br>');
INSERT INTO `settings` VALUES (15, 'main', 'error', 'Folgende Fehler traten auf:');
INSERT INTO `settings` VALUES (16, 'login', 'error', 'Der Benutzername ist nicht registriert.');
INSERT INTO `settings` VALUES (17, 'login2', 'error', 'Ihre Passworteingabe war fehlerhaft.');
INSERT INTO `settings` VALUES (18, 'rang', 'error', 'Sie sind nicht berechtigt, diese Seite einzusehen.');
 
Das wäre wohl besser im Datenbankforum aufgehoben..
MySQL hat die Funktion RAND(), welcher du einen Parameter als Initialisierung übergeben kannst. Jetzt mußt du diesen nur noch anpassen, daß er sich alles zwei Stunden ändert.
 
Du ziehst einfach einen Zufallsuser
Code:
$sql = "SELECT * FROM user
          ORDER BY RAND() LIMIT 1";
und schreibst den aktuellen Timestamp in die Datenbank (wo kannst du dir selber aussuchen). Dann überprüfst du einfach immer, ob der aktuelle Timestamp größer als der Timestamp aus der Datenbank + 2 Stunden ist. Ist das der Fall -> neuen Zufallsuser ziehen und den Timestamp in der Datenbank aktualisieren.
 
Was versteht du denn nicht?
Also der SQL befehl macht eine Abfrage. Normalerweise sortiert er diese in der Reihenfolge, in der sie in die Tabelle eingetragen wurden. Um nun aber alles zu würfeln macht er RAND() ==random damit alles kreuz und quer ist.

2tens mit dem alle 2 Stunden, dafür empfiehlt sich ein Cronjob.
 
Zurück