<table> + 2 x while functies
Ik heb een stukje code gekopieerd die overeenkomt met het einde van deze pagina (groep3 & 6):
http://www.bl00d.eu/funtournament/tournamentv3.php
Mijn doel is om de gegevens die ik uit de database krijg via 2 while functies netjes naast elkaar te zetten (1ste while in groep 3 en 2de while in groep 6), ik krijg de juiste resultaat, maar in groep 3 wordt die verdubbeld en in groep 6 wordt het met 4 vermenigvuldigd, ik kan gewoon niet inzien waardoor ik die while functies vervangen kan:
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
53
54
55
56
57
58
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
53
54
55
56
57
58
<tr>
<td colspan=6><big><i><center>Group 3:</center></i></big></td>
<td colspan=6><big><i><center>Group 6:</center></i></big></td>
</tr>
<?php
echo'<tr>';
echo'<td>#</td>';
echo'<td>Team</td>';
echo'<td>Won</td>';
echo'<td>Lost</td>';
echo'<td>Tie</td>';
echo'<td>Total</td>';
echo'<td>#</td>';
echo'<td>Team</td>';
echo'<td>Won</td>';
echo'<td>Lost</td>';
echo'<td>Tie</td>';
echo'<td>Total</td>';
echo'</tr>';
$k3_r3 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=3 ORDER BY `totalpoints` DESC LIMIT 0,4";
$r_k3_r3 = mysql_query($k3_r3);
while($rij_k3_r3 = mysql_fetch_array($r_k3_r3)){
$k6_r6 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=6 ORDER BY `totalpoints` DESC LIMIT 0,2";
$r_k6_r6 = mysql_query($k6_r6);
while($rij_k6_r6 = mysql_fetch_array($r_k6_r6)){
echo'<tr>';
echo'<td>#</td>';
echo'<td>'.$rij_k3_r3[0].'</td>';
echo'<td>'.$rij_k3_r3[1].'</td>';
echo'<td>'.$rij_k3_r3[2].'</td>';
echo'<td>'.$rij_k3_r3[3].'</td>';
echo'<td>'.$rij_k3_r3[4].'</td>';
echo'<td>#</td>';
echo'<td>'.$rij_k6_r6[0].'</td>';
echo'<td>'.$rij_k6_r6[1].'</td>';
echo'<td>'.$rij_k6_r6[2].'</td>';
echo'<td>'.$rij_k6_r6[3].'</td>';
echo'<td>'.$rij_k6_r6[4].'</td>';
echo'</tr>';
}
}
?>
</table>
<td colspan=6><big><i><center>Group 3:</center></i></big></td>
<td colspan=6><big><i><center>Group 6:</center></i></big></td>
</tr>
<?php
echo'<tr>';
echo'<td>#</td>';
echo'<td>Team</td>';
echo'<td>Won</td>';
echo'<td>Lost</td>';
echo'<td>Tie</td>';
echo'<td>Total</td>';
echo'<td>#</td>';
echo'<td>Team</td>';
echo'<td>Won</td>';
echo'<td>Lost</td>';
echo'<td>Tie</td>';
echo'<td>Total</td>';
echo'</tr>';
$k3_r3 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=3 ORDER BY `totalpoints` DESC LIMIT 0,4";
$r_k3_r3 = mysql_query($k3_r3);
while($rij_k3_r3 = mysql_fetch_array($r_k3_r3)){
$k6_r6 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=6 ORDER BY `totalpoints` DESC LIMIT 0,2";
$r_k6_r6 = mysql_query($k6_r6);
while($rij_k6_r6 = mysql_fetch_array($r_k6_r6)){
echo'<tr>';
echo'<td>#</td>';
echo'<td>'.$rij_k3_r3[0].'</td>';
echo'<td>'.$rij_k3_r3[1].'</td>';
echo'<td>'.$rij_k3_r3[2].'</td>';
echo'<td>'.$rij_k3_r3[3].'</td>';
echo'<td>'.$rij_k3_r3[4].'</td>';
echo'<td>#</td>';
echo'<td>'.$rij_k6_r6[0].'</td>';
echo'<td>'.$rij_k6_r6[1].'</td>';
echo'<td>'.$rij_k6_r6[2].'</td>';
echo'<td>'.$rij_k6_r6[3].'</td>';
echo'<td>'.$rij_k6_r6[4].'</td>';
echo'</tr>';
}
}
?>
</table>
Mocht er iemand weten wat er mis zit, alvast bedankt,
MvG,
Eduard
Gewijzigd op 01/01/1970 01:00:00 door Ed
Gebruik $rij_k3_r3['lost'] en mysql_fetch_assoc(), dat voorkomt dit soort zinloze problemen.
Je onverwachte output komt omdat je een while loop in een while loop hebt staan. Je zult die loops uit elkaar moeten halen en de inhoud los van elkaar moeten tonen...
en daarboven heb ik ook de while in a while van elkaar afgescheiden Blanche, ik had het al eens geprobeerd, maar het bleef/blijft nog steeds een probleem, mijn lay-out is nog steeds niet helemaal zoals het moet zijn,
eerste resultaat staaat wel bij groep 6 maar helemaal onderaan en 2de resultaat is nu overgesprongen naar group 3 onderste rij :s
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
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
$k3_r3 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=3 ORDER BY `totalpoints` DESC LIMIT 0,4";
$r_k3_r3 = mysql_query($k3_r3);
while($rij_k3_r3 = mysql_fetch_assoc($r_k3_r3)){
echo'<tr><td>#</td>';
echo'<td>'.$rij_k3_r3['nickname'].'</td>';
echo'<td>'.$rij_k3_r3['won'].'</td>';
echo'<td>'.$rij_k3_r3['lost'].'</td>';
echo'<td>'.$rij_k3_r3['tie'].'</td>';
echo'<td>'.$rij_k3_r3['totalpoints'].'</td>';
}
$k6_r6 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=6 ORDER BY `totalpoints` DESC LIMIT 0,2";
$r_k6_r6 = mysql_query($k6_r6);
while($rij_k6_r6 = mysql_fetch_assoc($r_k6_r6)){
echo'<td>#</td>';
echo'<td>'.$rij_k6_r6['nickname'].'</td>';
echo'<td>'.$rij_k6_r6['won'].'</td>';
echo'<td>'.$rij_k6_r6['lost'].'</td>';
echo'<td>'.$rij_k6_r6['tie'].'</td>';
echo'<td>'.$rij_k6_r6['totalpoints'].'</td>';
echo'</tr>';
}
$r_k3_r3 = mysql_query($k3_r3);
while($rij_k3_r3 = mysql_fetch_assoc($r_k3_r3)){
echo'<tr><td>#</td>';
echo'<td>'.$rij_k3_r3['nickname'].'</td>';
echo'<td>'.$rij_k3_r3['won'].'</td>';
echo'<td>'.$rij_k3_r3['lost'].'</td>';
echo'<td>'.$rij_k3_r3['tie'].'</td>';
echo'<td>'.$rij_k3_r3['totalpoints'].'</td>';
}
$k6_r6 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=6 ORDER BY `totalpoints` DESC LIMIT 0,2";
$r_k6_r6 = mysql_query($k6_r6);
while($rij_k6_r6 = mysql_fetch_assoc($r_k6_r6)){
echo'<td>#</td>';
echo'<td>'.$rij_k6_r6['nickname'].'</td>';
echo'<td>'.$rij_k6_r6['won'].'</td>';
echo'<td>'.$rij_k6_r6['lost'].'</td>';
echo'<td>'.$rij_k6_r6['tie'].'</td>';
echo'<td>'.$rij_k6_r6['totalpoints'].'</td>';
echo'</tr>';
}
Gewijzigd op 01/01/1970 01:00:00 door Ed
Ofwel je maakt er twee verschillende tabellen van die je na elkaar genereert. Ofwel plaats je de gegevens uit de database eerst in 2 array's die je gelijktijdig met een for-loop doorloopt.
ps. Dat laatste zou zoiets worden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// Gegevens van groep3 in een array stoppen
while($rij = mysql_fetch_assoc($r_k3_r3))
{
$groep3[] = $rij;
}
// Gegevens van groep6 in een array stoppen
// ...
// Grootste aantal items bepalen
$aantal = count($groep3) > count($groep6) ? count($groep3) : count($groep6);
// Tabelrijen genereren...
for($i = 0; $i < $aantal; $i++)
{
echo '<tr>';
// Toon hier de verschillende velden in 1 rij van de tabel
// dus zowel van groep3 als groep6
echo '</tr>';
}
?>
// Gegevens van groep3 in een array stoppen
while($rij = mysql_fetch_assoc($r_k3_r3))
{
$groep3[] = $rij;
}
// Gegevens van groep6 in een array stoppen
// ...
// Grootste aantal items bepalen
$aantal = count($groep3) > count($groep6) ? count($groep3) : count($groep6);
// Tabelrijen genereren...
for($i = 0; $i < $aantal; $i++)
{
echo '<tr>';
// Toon hier de verschillende velden in 1 rij van de tabel
// dus zowel van groep3 als groep6
echo '</tr>';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Deze tabellen zitten dan weer in een hoofdtabel die 2 kolommen heeft.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
hartelijk bedankt blanche!
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
53
54
55
56
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
53
54
55
56
// Gegevens van groep3 in een array stoppen
$k3_r3 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=3 ORDER BY `totalpoints` DESC LIMIT 0,4";
$r_k3_r3 = mysql_query($k3_r3);
while($rij = mysql_fetch_assoc($r_k3_r3))
{
$groep3[0] = $rij['nickname'];
$groep3[1] = $rij['won'];
$groep3[2] = $rij['lost'];
$groep3[3] = $rij['tie'];
$groep3[4] = $rij['totalpoints'];
}
// Gegevens van groep6 in een array stoppen
$k6_r6 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=6 ORDER BY `totalpoints` DESC LIMIT 0,2";
$r_k6_r6 = mysql_query($k6_r6);
while($rij = mysql_fetch_assoc($r_k6_r6))
{
$groep6[0] = $rij['nickname'];
$groep6[1] = $rij['won'];
$groep6[2] = $rij['lost'];
$groep6[3] = $rij['tie'];
$groep6[4] = $rij['totalpoints'];
}
// Grootste aantal items bepalen
$aantal = count($groep3) > count($groep6) ? count($groep3) : count($groep6);
// Tabelrijen genereren...
for($i = 0; $i < $aantal; $i++)
{
echo '<tr>';
echo'<td>#</td>';
echo'<td>'.$groep3[0].'</td>';
echo'<td>'.$groep3[1].'</td>';
echo'<td>'.$groep3[2].'</td>';
echo'<td>'.$groep3[3].'</td>';
echo'<td>'.$groep3[4].'</td>';
echo'<td>#</td>';
echo'<td>'.$groep6[0].'</td>';
echo'<td>'.$groep6[1].'</td>';
echo'<td>'.$groep6[2].'</td>';
echo'<td>'.$groep6[3].'</td>';
echo'<td>'.$groep6[4].'</td>';
// Toon hier de verschillende velden in 1 rij van de tabel
// dus zowel van groep3 als groep6
echo '</tr>';
}
echo'</table>';
?>
$k3_r3 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=3 ORDER BY `totalpoints` DESC LIMIT 0,4";
$r_k3_r3 = mysql_query($k3_r3);
while($rij = mysql_fetch_assoc($r_k3_r3))
{
$groep3[0] = $rij['nickname'];
$groep3[1] = $rij['won'];
$groep3[2] = $rij['lost'];
$groep3[3] = $rij['tie'];
$groep3[4] = $rij['totalpoints'];
}
// Gegevens van groep6 in een array stoppen
$k6_r6 = "SELECT nickname, won, lost, tie, totalpoints FROM gebruikers WHERE `group`=6 ORDER BY `totalpoints` DESC LIMIT 0,2";
$r_k6_r6 = mysql_query($k6_r6);
while($rij = mysql_fetch_assoc($r_k6_r6))
{
$groep6[0] = $rij['nickname'];
$groep6[1] = $rij['won'];
$groep6[2] = $rij['lost'];
$groep6[3] = $rij['tie'];
$groep6[4] = $rij['totalpoints'];
}
// Grootste aantal items bepalen
$aantal = count($groep3) > count($groep6) ? count($groep3) : count($groep6);
// Tabelrijen genereren...
for($i = 0; $i < $aantal; $i++)
{
echo '<tr>';
echo'<td>#</td>';
echo'<td>'.$groep3[0].'</td>';
echo'<td>'.$groep3[1].'</td>';
echo'<td>'.$groep3[2].'</td>';
echo'<td>'.$groep3[3].'</td>';
echo'<td>'.$groep3[4].'</td>';
echo'<td>#</td>';
echo'<td>'.$groep6[0].'</td>';
echo'<td>'.$groep6[1].'</td>';
echo'<td>'.$groep6[2].'</td>';
echo'<td>'.$groep6[3].'</td>';
echo'<td>'.$groep6[4].'</td>';
// Toon hier de verschillende velden in 1 rij van de tabel
// dus zowel van groep3 als groep6
echo '</tr>';
}
echo'</table>';
?>
Gewijzigd op 01/01/1970 01:00:00 door Ed
het enigste oplossing dat voor me nu werkt is while te gebruiken per rij/per team, maar dan eindig ik uiteraard met ca 29 whiles tov 8 als ik die methode van jou doorheb
Het makkelijkste is denk ik om 2 tabellen te genereren die je naast elkaar zet...