Zurück   klamm-Forum > klamm-Lose > Lose4Scripts > Lose4Scripts (erledigt)

 
 
LinkBack Themen-Optionen Ansicht
Alt 30.09.2006, 12:16:54   #1 (permalink)
Loseverleiher

ID: 193048
Lose-Remote

Reg: 21.05.2006
Beiträge: 4.623
Standard [S] Einen Mysql oder PHP Befehl

Hallo,

suche einen Mysql oder PHP Befehl um einen Eintrag aus einer Tabelle zufällig auszuwählen.
Also in der Tabelle XY sind 5 Einträge und bei jedem aufruf soll einer der 5 einträge zufällig ausgewählt werden.

Da es Lose 4 heißt, gibt es 100 symbolische Lose für denjenigen, der mir einen Befehl nennen kann.
money-sms ist offline  
Alt 30.09.2006, 12:31:44   #2 (permalink)
php Sklave

ID: 113621
Lose-Remote

LittleGee eine Nachricht über ICQ schicken
Reg: 29.04.2006
Beiträge: 228
Standard

Schau mal hier:
http://www.petefreitag.com/item/466.cfm

mfg
 
LittleGee ist offline  
Alt 30.09.2006, 12:33:40   #3 (permalink)
Loseverleiher

ID: 193048
Lose-Remote

Reg: 21.05.2006
Beiträge: 4.623
Standard

Hi,

also mit mysql rand() habe ich gehört, dass der Zufall nicht immer zufällig ist. Also das da Datenstäze wesentlich öfter angezeigt werden als andere.

Brauch noch deine Klammid für die Lose.

Suche aber noch weiter
money-sms ist offline Threadstarter  
Alt 30.09.2006, 12:36:13   #4 (permalink)
php Sklave

ID: 113621
Lose-Remote

LittleGee eine Nachricht über ICQ schicken
Reg: 29.04.2006
Beiträge: 228
Standard

Ansonsten ne schmutzige Lösung:
Packst das Result in ein Array und holst dann $row[$i] ab und machst vorher was mit rand()

ID ist 113621

mfg
 
LittleGee ist offline  
Alt 30.09.2006, 12:40:23   #5 (permalink)
Loseverleiher

ID: 193048
Lose-Remote

Reg: 21.05.2006
Beiträge: 4.623
Standard

Zitat:
Zitat von LittleGee Beitrag anzeigen
Ansonsten ne schmutzige Lösung:
Packst das Result in ein Array und holst dann $row[$i] ab und machst vorher was mit rand()

ID ist 113621

mfg
Nenn mir dafür mal ein beispiel.
money-sms ist offline Threadstarter  
Alt 30.09.2006, 12:45:47   #6 (permalink)
Erfahrener Benutzer

ID: 41926
Lose-Remote

Reg: 24.04.2006
Beiträge: 832
Standard

vor abfrage setzen

$seed = mt_rand(0,time());


in der mysqlabfrage dann "order by rand($seed)" das ist etwas zufälliger.

Gruss hatty

Geändert von hatty (30.09.2006 um 12:50:37 Uhr)
hatty ist offline  
Alt 30.09.2006, 12:48:24   #7 (permalink)
Loseverleiher

ID: 193048
Lose-Remote

Reg: 21.05.2006
Beiträge: 4.623
Standard

Danke hatty, werde das gleich mal testen.

Melde mich falls es probleme oder weitere fragen geben sollte. Danke an euch !
money-sms ist offline Threadstarter  
Alt 30.09.2006, 18:59:08   #8 (permalink)
return void
Benutzerbild von ice-breaker

ID: 93995
Lose-Remote

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

Zitat:
Zitat von hatty Beitrag anzeigen
vor abfrage setzen

$seed = mt_rand(0,time());


in der mysqlabfrage dann "order by rand($seed)" das ist etwas zufälliger.

Gruss hatty
den unix-timestamp als max-wert zu verwenden ist eigentlich ziemlich, wird die funktion parameterlos aufgerufen kommen viel mehr unterschiedliche zufallszahlen heraus:
PHP-Code:
1:
$seed=mt_rand(); 
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline  
Alt 30.09.2006, 19:14:15   #9 (permalink)
redraft.de

ID: 155297
Lose-Remote

strolch00 eine Nachricht über ICQ schicken
Reg: 21.04.2006
Beiträge: 1.684
Standard

ich verstehe net warum ihr überhaupt so einen hohen max wert angebt wenn es eh nur 5 zeilen hat die tabelle dann einfach mt_rand(0,5); und gut oder sehe ich was falsch??
strolch00 ist offline  
Alt 30.09.2006, 22:52:56   #10 (permalink)
Loseverleiher

ID: 193048
Lose-Remote

Reg: 21.05.2006
Beiträge: 4.623
Standard

also den code habe ich schon. und die 5 Zeilen waren nur ein Beispiel. Es handelt sich dabei um URL einträge, die danach in einem Iframe angezeigt werden. Und das sind immer unterschiedlich viele.

mit dem rand(0, time()) bin ich momentan eigenltich recht zufrieden. Läuft aber auch erst knappe 5 Std.
money-sms ist offline Threadstarter  
Alt 01.10.2006, 07:04:59   #11 (permalink)
Erfahrener Benutzer

ID: 41926
Lose-Remote

Reg: 24.04.2006
Beiträge: 832
Standard

Zitat:
Zitat von strolch00 Beitrag anzeigen
ich verstehe net warum ihr überhaupt so einen hohen max wert angebt wenn es eh nur 5 zeilen hat die tabelle dann einfach mt_rand(0,5); und gut oder sehe ich was falsch??
Umso höher der wert in der Klammer umso zufälliger ist der wert mt_rand

Bei einen Wert (0,5) ist die wahrscheinlich sehr hoch das sehr oft die gleiche Zahl kommt.

Geändert von hatty (01.10.2006 um 07:05:34 Uhr)
hatty ist offline  
Alt 01.10.2006, 07:08:02   #12 (permalink)
Erfahrener Benutzer

ID: 41926
Lose-Remote

Reg: 24.04.2006
Beiträge: 832
Standard

Zitat:
Zitat von money-sms Beitrag anzeigen
also den code habe ich schon. und die 5 Zeilen waren nur ein Beispiel. Es handelt sich dabei um URL einträge, die danach in einem Iframe angezeigt werden. Und das sind immer unterschiedlich viele.

mit dem rand(0, time()) bin ich momentan eigenltich recht zufrieden. Läuft aber auch erst knappe 5 Std.

Kannst mir glauben das ist die beste und einfachste funktion wenn du nicht ein array oder eine Modularfunktion bauen willst, den dann wird es kompliziert.

Gruss hatty
hatty ist offline  
Alt 01.10.2006, 07:11:31   #13 (permalink)
Erfahrener Benutzer

ID: 41926
Lose-Remote

Reg: 24.04.2006
Beiträge: 832
Standard

Zitat:
Zitat von ice-breaker Beitrag anzeigen
den unix-timestamp als max-wert zu verwenden ist eigentlich ziemlich, wird die funktion parameterlos aufgerufen kommen viel mehr unterschiedliche zufallszahlen heraus:
PHP-Code:
1:
$seed=mt_rand(); 
Durch den timestamp soll verhintert werden das er kurz hintereinander zweimal das gleiche aufruft. wenn einen das egal ist reicht die funktion seed=mt_rand(); die auf jeden fall besser ist als die funktion rand()

Gruss hatty
hatty ist offline  
Alt 01.10.2006, 07:29:02   #14 (permalink)
Erfahrener Benutzer

ID: 41926
Lose-Remote

Reg: 24.04.2006
Beiträge: 832
Standard

Man kann zum beispiel auch sowas basteln

$zahl = mt_rand(1,40000);
$zahl = ceil($zahl/1000);

hier werden dann zufällig nur die ganzzahlen 1 bis 40 aufgerufen.

oder

modularfunktion
$zahl = mt_rand(1,1000000);
$zahl = $zahl % 2 == 0 ? 0 : 1;

hier muss die zahl durch 2 teilbar sein. es kommt immer nur zufällig 0 oder 1 raus. Diese funktion ist sehr genau und kann man gut bei 50/50 Spielen anwenden. Bei wenigen spielen merkt man noch nicht wie gut die funktion ist hat man aber dann so 50.000 Spiele gemacht dann sieht man das man wirklich 50:50 Chancen hat. und nicht wie bei einigen random funktionen wo man nach 50.000 Spielen so was hat 45:55 oder sowas 60:40

Geändert von hatty (01.10.2006 um 07:58:05 Uhr)
hatty ist offline  
Alt 01.10.2006, 09:47:39   #15 (permalink)
redraft.de

ID: 155297
Lose-Remote

strolch00 eine Nachricht über ICQ schicken
Reg: 21.04.2006
Beiträge: 1.684
Standard

Zitat:
Zitat von hatty Beitrag anzeigen
Umso höher der wert in der Klammer umso zufälliger ist der wert mt_rand

Bei einen Wert (0,5) ist die wahrscheinlich sehr hoch das sehr oft die gleiche Zahl kommt.
ja gut das wusste ich ja net das es auch mehr sein können also 5 aber so ergibt das auch für mich einen sinn ^^ wenn das 5 nen beispiel war
strolch00 ist offline  
 

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySql-Befehl gesucht KLG Programmierung 9 03.05.2008 01:33:57
IMac oder Mac PRO? Oder doch einen Mac Book? :think: Duderich Hardware 6 19.10.2007 01:04:40
[MySQL] Repair-Befehl Zeitter1 Programmierung 6 02.06.2007 18:02:12
MySQL Befehl keinschnee Scripts & Software 5 07.05.2006 10:58:16
[MySQL] Zufällig einen oder mehrere Datensätze auswählen theHacker FAQ und Archiv 0 29.04.2006 16:01:41


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07:01 Uhr.