Results willekeurig uit database halen
Ik ben bezig met een soort van competitie systeem (net begonnen), en nu vroeg ik me af of het mogelijk is om 16 teams in een mysqltable op te splitsen in 4 poule's. Ik wil dat dit allemaal willekeurig gebeurt.
Mijn mysql ziet er als volgt uit:
| ID | NAAM | POULE |
Dus dat bv. team 1 in poule 3 zit team 2 in poule 1.
Mvg,
Jeroen
je kunt met sql random uitlezen, in een array zetten en 0/3 4/7 8/11 12/15 uitlezen als poels.
sql random:
SELECT column FROM table
ORDER BY RANDOM()
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?PHP
include('database.php'); // database includen
$sql = "SELECT teamname FROM teams ORDER BY RANDOM() LIMIT 4"; // query samenstellen
$query = mysql_query($sql); // query uitvoeren
while($r = mysql_fetch_array($query))
{ // results uit DB halen
$team = $r['teamname'];
echo ''.$team.''; // results echoën
}
?>
include('database.php'); // database includen
$sql = "SELECT teamname FROM teams ORDER BY RANDOM() LIMIT 4"; // query samenstellen
$query = mysql_query($sql); // query uitvoeren
while($r = mysql_fetch_array($query))
{ // results uit DB halen
$team = $r['teamname'];
echo ''.$team.''; // results echoën
}
?>
de error die ik krijg:
Want dan weet ik zeker dat je een sql error had gekregen!
RANDOM moet RAND() zijn
GR. mebus!
Gewijzigd op 01/01/1970 01:00:00 door Mebus Hackintosh
// Jeroen
$query = mysql_query($sql); // query uitvoeren
vervangt door:
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?PHP
error_reporting(E_ALL); // error reporting aan
include('database.php'); // database includen
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 4"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule='1' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE 1: '.$name.',<br>'; // results echoën
}
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 4"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule='2' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE 2: '.$name.',<br>'; // results echoën
}
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 4"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule='3' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE 3: '.$name.',<br>'; // results echoën
}
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 4"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule='4' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE 4: '.$name.',<br>'; // results echoën
}
?>
error_reporting(E_ALL); // error reporting aan
include('database.php'); // database includen
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 4"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule='1' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE 1: '.$name.',<br>'; // results echoën
}
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 4"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule='2' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE 2: '.$name.',<br>'; // results echoën
}
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 4"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule='3' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE 3: '.$name.',<br>'; // results echoën
}
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 4"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule='4' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE 4: '.$name.',<br>'; // results echoën
}
?>
// Jeroen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?PHP
error_reporting(E_ALL); // error reporting aan
include('database.php'); // database includen
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 16"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
$teller = 0;
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$teller++;
$poule = ceil ($counter / 4);
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule=''" . $poule . "'' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE ' . $poule . ': '.$name.',<br>'; // results echoën
}
?>
error_reporting(E_ALL); // error reporting aan
include('database.php'); // database includen
$sql = "SELECT * FROM teams WHERE poule='-' ORDER BY RAND() LIMIT 16"; // query samenstellen
$query = mysql_query($sql) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
$teller = 0;
while ($r = mysql_fetch_array($query))
{ // results uit DB halen
$teller++;
$poule = ceil ($counter / 4);
$id = $r['teamid'];
$name = $r['teamname'];
$sqlp1 = "UPDATE teams SET poule=''" . $poule . "'' WHERE teamid='$id'"; // query samenstellen
$queryp1 = mysql_query($sqlp1) or die(mysql_error()); // query uitvoeren + error reporting aan ;)
echo 'POULE ' . $poule . ': '.$name.',<br>'; // results echoën
}
?>
Edit:
foutje verwijderd. Overigens zal het veld 'poule' in je tabel wel een INT zijn, dus eigenlijk zijn die enkele quotes in je UPDATE query niet nodig.
foutje verwijderd. Overigens zal het veld 'poule' in je tabel wel een INT zijn, dus eigenlijk zijn die enkele quotes in je UPDATE query niet nodig.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
@Jan Koehoorn, bedankt dit is wat makkelijker als zo'n lang script
@ Jeroen: graag gedaan. Als je in je script codeblokken tegenkomt die heel erg op elkaar lijken is het bijna altijd mogelijk om het met minder code op te lossen.