Tom: Spielerliste - zufällige Paarungen erzeugen

Beitrag lesen

Hello,

»» Ich möchte jedoch gern zufällige Spielerpaarungen erzeugen. Soll heißen: Wer spielt gegen wen?

"Sortiere" die Ergebnismenge nach Zufall (ORDER BY RAND()) und limitiere sie auf 2 (LIMIT 2).

Es sind aber mehr als zwei Spieler vorgesehen und ich brauch die Werte später fest. So hätte ich bei jedem Durchgang wieder neue Pärchen.

Ja.
Und außerdem musst Du doch auch sicherstellen, dass die bereits gepaarten nicht nochmals gepaart werden.

Ich würde das anders machen: Eine weitere Tabelle bereitstellen für die Ziehungen

id  ziehung id_spieler
1      1     22
2      1     11
3      1     1
4      1     25
5      1     40
6      1     13
7      2     11
8      2     33
.      .

Diese Tabelle fütterst Du mit einer Abfrage aus der anderen mit

... Order by rand() limit $geradezahl

je nachdem, wieviele Paare Du aus der Gesamtmenge bilden willst.

Und nachher spilt dann immer

$offset+1 mit $offset+2
  $offset+3 mit $offset+4
  $offset+5 mit $offset+6

wobei $offset der Aufsetzpunkt in den IDs der Ziehungstabelle ist, also für di erste Ziehung 0, für die zweite Ziehung 7 usw.

Das Paare anzeigen lässt sich dann durch eine weitere Abfrage mit self-join erledigen

SO ist sichergestellt, dass die Ziehung dokumentiert ist und dass Du in einer Ziehung wirklich jeden Spieler-Datensatz nur einmal hast.

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de