selected="selected" implementeren in groot script
Dag mensen,
Ik zit met een erg ingewikkeld script dat eerder is gemaakt door een andere programmeur. Nu werkt alles inmiddels prima behalve 1 klein dingetje. Het script is om een opstelling van een team te bewerken. Alleen bij het openen van het script toont hij in de select boxen niet de speler die op dat moment is geselecteerd oftewel ik mis een selected="selected". Zouden jullie kunnen laten zien hoe dat geïmplementeerd moet worden? Ik heb al van alles geprobeerd, maar krijg het in dit script echt niet voor elkaar.
PS. De selectbox is te vinden op 126 en is onderdeel van de functie set_players
Bij deze de volledige code
Alvast bedankt voor jullie hulp.
Ik zit met een erg ingewikkeld script dat eerder is gemaakt door een andere programmeur. Nu werkt alles inmiddels prima behalve 1 klein dingetje. Het script is om een opstelling van een team te bewerken. Alleen bij het openen van het script toont hij in de select boxen niet de speler die op dat moment is geselecteerd oftewel ik mis een selected="selected". Zouden jullie kunnen laten zien hoe dat geïmplementeerd moet worden? Ik heb al van alles geprobeerd, maar krijg het in dit script echt niet voor elkaar.
PS. De selectbox is te vinden op 126 en is onderdeel van de functie set_players
Bij deze de volledige code
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
<?php
$match_id = 1;
$teams_query = "SELECT
m.thuisclub_id,
m.uitclub_id,
(SELECT naam FROM clubs WHERE id=m.thuisclub_id) AS thuisclub,
(SELECT naam FROM clubs WHERE id=m.uitclub_id) AS uitclub
FROM
wedstrijden AS m
WHERE
m.id={$match_id}
";
$clubrow = mysql_fetch_assoc(mysql_query($teams_query));
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$positie_array = array('aanvaller' => 'A', 'middenvelder' => 'M', 'verdediger' => 'V', 'keeper' => 'K');
$controle = true;
foreach($_POST as $posities => $pos_array){
foreach($_POST[$posities] as $team => $speler_array){
foreach($_POST[$posities][$team] as $pos_nr => $speler){
$club = $clubrow[$team.'club_id'];
$positie_nr = $pos_nr+1;
$query = "
INSERT INTO
opstelling
SET
wedstrijd_id = {$match_id},
speler_id = {$speler},
club_id = {$club},
positie = '{$positie_array[$posities]}',
tijd_in = 0,
tijd_uit = 90,
pos_volgnr = {$positie_nr}
";
if(!mysql_query($query) && isset($controle)){
$controle = false;
}
//$posities.' '.$team.' '.$speler.'('.$positie_nr.')<br />';
}
}
}
if($controle){
$content .= 'De opstelling is succesvol toegevoegd aan de database. U kunt hem aanpassen op de pagina voor opstelling bewerken.';
}
else{
$content .= 'Er is iets misgegaan bij het toevoegen van de opstelling. U wordt aangeraden om via "opstelling bewerken" te kijken naar de opstelling en deze (indien er iets is toegevoegd) daar aan te passen. Staat er geen opstelling in "opstelling bewerken" dan dient u de opstelling via "opstelling aanmaken" nog een keer proberen toe te voegen.';
}
}
else{
$opst_query ="
SELECT
COUNT(id) AS aantal,
club_id,
(select
naam
FROM
clubs
WHERE
id = club_id) AS clubnaam,
(SELECT
CASE
club_id
WHEN
thuisclub_id
THEN 'thuis'
ELSE 'uit'
END
FROM
wedstrijden
WHERE id=1) AS team,
positie
FROM
opstelling
WHERE
wedstrijd_id = {$match_id}
AND
tijd_in = 0
AND
positie <> 'K'
GROUP BY
positie,
club_id
ORDER BY
club_id,
positie
";
if($opst_res = mysql_query($opst_query)){
$aOpstelling = array();
while($opst_row = mysql_fetch_assoc($opst_res)){
$aOpstelling[$opst_row['team']][] = $opst_row['aantal'];
}
}
if(($array_sum['thuis'] = array_sum($aOpstelling['thuis'])) != 10){
$content .= 'De opstelling voor het uitteam is ongeldig, er staan of te veel of te weinig spelers in';
}
elseif(($array_sum['uit'] = array_sum($aOpstelling['uit'])) != 10){
$content .= 'De opstelling voor het uitteam is ongeldig, er staan of te veel of te weinig spelers in';
}
else{
function set_players($team_id){
$speler_query = "SELECT
s.id,
CONCAT(s.achternaam, ', ', s.voornaam, ' ', s.tussenvoegsel) AS naam,
s.positie
FROM
spelers AS s
INNER JOIN
speler_clubs AS sc
ON
sc.speler_id = s.id
WHERE
s.status = 1
AND
sc.club_id = ".$team_id."
ORDER BY
s.positie,
s.achternaam";
if($speler_result = mysql_query($speler_query)){
$aSpelers = array();
while($speler_row = mysql_fetch_assoc($speler_result)){
$aSpelers[$speler_row['positie']][] = '<option value="'.$speler_row['id'].'">'.htmlentities($speler_row['naam']).'</option>';
}
}
asort($aSpelers);
return $aSpelers;
}
function set_selectbox ($id, $options, $team) {
$prev_opt = '';
$posities = array('K' => 'keepers', 'V' => 'verdedigers', 'M' => 'middenvelders', 'A' => 'aanvallers');
$return = '';
$return .= PHP_EOL . '<select id="' . $id . '" name="' . $id . '['.$team.'][]">';
$return .= PHP_EOL . '<option value="0"> - geen - </option>';
if($id == 'keeper'){
foreach ($options['K'] as $key => $value) {
$return.= PHP_EOL.$value;
}
}
unset($options['K']);
//verderdigers
if($id != 'keeper'){
if($id == 'verdediger'){
$return .= '<optgroup label="verdedigers">';
foreach($options['V'] as $key => $value){
$return .= $value;
}
$return .= '</optgroup>';
unset($options['V']);
}
//middenvelders
if($id == 'middenvelder'){
$return .= '<optgroup label="middenvelders">';
foreach($options['M'] as $key => $value){
$return .= $value;
}
$return .= '</optgroup>';
unset($options['M']);
}
//aanvallers
if($id == 'aanvaller'){
$return .= '<optgroup label="aanvallers">';
foreach($options['A'] as $key => $value){
$return .= $value;
}
$return .= '</optgroup>';
unset($options['A']);
}
foreach($options as $positie => $spelers){
if($positie != $prev_opt){
$return .= '<optgroup label="'.$posities[$positie].'">';
}
foreach($spelers as $value){
$return .= $value;
}
if($positie != $prev_opt){
$return .= '</optgroup>';
}
$prev_opt = $positie;
}
}
$return.= PHP_EOL . '</select>';
return $return;
}
$content .=<<<EOF
<form id="opstelling" method="post" action="{$_SERVER['REQUEST_URI']}">
<fieldset>
<legend>Thuisclub {$clubrow['thuisclub']}</legend>
EOF;
$aSpelers = set_players($clubrow['thuisclub_id']);
$content .= '<p>';
$content .= set_selectbox('keeper', $aSpelers, 'thuis');
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['thuis'][0]; $i++){
$content .= set_selectbox('verdediger',$aSpelers, 'thuis');
}
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['thuis'][1]; $i++){
$content .= set_selectbox('middenvelder',$aSpelers, 'thuis');
}
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['thuis'][2]; $i++){
$content .= set_selectbox('aanvaller',$aSpelers, 'thuis');
}
$content .= '</p>';
$content .=<<<EOF
</fieldset>
<fieldset><legend>Uitclub {$clubrow['uitclub']}</legend>
EOF;
$aSpelers = set_players($clubrow['uitclub_id']);
$content .= '<p>';
$content .= set_selectbox('keeper', $aSpelers, 'uit');
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['uit'][0]; $i++){
$content .= set_selectbox('verdediger',$aSpelers, 'uit');
}
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['uit'][1]; $i++){
$content .= set_selectbox('middenvelder',$aSpelers, 'uit');
}
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['uit'][2]; $i++){
$content .= set_selectbox('aanvaller',$aSpelers, 'uit');
}
$content .= '</p>';
$content .=<<<EOF
</fieldset>
<input type="submit" value="verstuur" onclick="return check_lineup();"/>
</form>
</div>
</body>
</html>
EOF;
}
}
?>
$match_id = 1;
$teams_query = "SELECT
m.thuisclub_id,
m.uitclub_id,
(SELECT naam FROM clubs WHERE id=m.thuisclub_id) AS thuisclub,
(SELECT naam FROM clubs WHERE id=m.uitclub_id) AS uitclub
FROM
wedstrijden AS m
WHERE
m.id={$match_id}
";
$clubrow = mysql_fetch_assoc(mysql_query($teams_query));
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$positie_array = array('aanvaller' => 'A', 'middenvelder' => 'M', 'verdediger' => 'V', 'keeper' => 'K');
$controle = true;
foreach($_POST as $posities => $pos_array){
foreach($_POST[$posities] as $team => $speler_array){
foreach($_POST[$posities][$team] as $pos_nr => $speler){
$club = $clubrow[$team.'club_id'];
$positie_nr = $pos_nr+1;
$query = "
INSERT INTO
opstelling
SET
wedstrijd_id = {$match_id},
speler_id = {$speler},
club_id = {$club},
positie = '{$positie_array[$posities]}',
tijd_in = 0,
tijd_uit = 90,
pos_volgnr = {$positie_nr}
";
if(!mysql_query($query) && isset($controle)){
$controle = false;
}
//$posities.' '.$team.' '.$speler.'('.$positie_nr.')<br />';
}
}
}
if($controle){
$content .= 'De opstelling is succesvol toegevoegd aan de database. U kunt hem aanpassen op de pagina voor opstelling bewerken.';
}
else{
$content .= 'Er is iets misgegaan bij het toevoegen van de opstelling. U wordt aangeraden om via "opstelling bewerken" te kijken naar de opstelling en deze (indien er iets is toegevoegd) daar aan te passen. Staat er geen opstelling in "opstelling bewerken" dan dient u de opstelling via "opstelling aanmaken" nog een keer proberen toe te voegen.';
}
}
else{
$opst_query ="
SELECT
COUNT(id) AS aantal,
club_id,
(select
naam
FROM
clubs
WHERE
id = club_id) AS clubnaam,
(SELECT
CASE
club_id
WHEN
thuisclub_id
THEN 'thuis'
ELSE 'uit'
END
FROM
wedstrijden
WHERE id=1) AS team,
positie
FROM
opstelling
WHERE
wedstrijd_id = {$match_id}
AND
tijd_in = 0
AND
positie <> 'K'
GROUP BY
positie,
club_id
ORDER BY
club_id,
positie
";
if($opst_res = mysql_query($opst_query)){
$aOpstelling = array();
while($opst_row = mysql_fetch_assoc($opst_res)){
$aOpstelling[$opst_row['team']][] = $opst_row['aantal'];
}
}
if(($array_sum['thuis'] = array_sum($aOpstelling['thuis'])) != 10){
$content .= 'De opstelling voor het uitteam is ongeldig, er staan of te veel of te weinig spelers in';
}
elseif(($array_sum['uit'] = array_sum($aOpstelling['uit'])) != 10){
$content .= 'De opstelling voor het uitteam is ongeldig, er staan of te veel of te weinig spelers in';
}
else{
function set_players($team_id){
$speler_query = "SELECT
s.id,
CONCAT(s.achternaam, ', ', s.voornaam, ' ', s.tussenvoegsel) AS naam,
s.positie
FROM
spelers AS s
INNER JOIN
speler_clubs AS sc
ON
sc.speler_id = s.id
WHERE
s.status = 1
AND
sc.club_id = ".$team_id."
ORDER BY
s.positie,
s.achternaam";
if($speler_result = mysql_query($speler_query)){
$aSpelers = array();
while($speler_row = mysql_fetch_assoc($speler_result)){
$aSpelers[$speler_row['positie']][] = '<option value="'.$speler_row['id'].'">'.htmlentities($speler_row['naam']).'</option>';
}
}
asort($aSpelers);
return $aSpelers;
}
function set_selectbox ($id, $options, $team) {
$prev_opt = '';
$posities = array('K' => 'keepers', 'V' => 'verdedigers', 'M' => 'middenvelders', 'A' => 'aanvallers');
$return = '';
$return .= PHP_EOL . '<select id="' . $id . '" name="' . $id . '['.$team.'][]">';
$return .= PHP_EOL . '<option value="0"> - geen - </option>';
if($id == 'keeper'){
foreach ($options['K'] as $key => $value) {
$return.= PHP_EOL.$value;
}
}
unset($options['K']);
//verderdigers
if($id != 'keeper'){
if($id == 'verdediger'){
$return .= '<optgroup label="verdedigers">';
foreach($options['V'] as $key => $value){
$return .= $value;
}
$return .= '</optgroup>';
unset($options['V']);
}
//middenvelders
if($id == 'middenvelder'){
$return .= '<optgroup label="middenvelders">';
foreach($options['M'] as $key => $value){
$return .= $value;
}
$return .= '</optgroup>';
unset($options['M']);
}
//aanvallers
if($id == 'aanvaller'){
$return .= '<optgroup label="aanvallers">';
foreach($options['A'] as $key => $value){
$return .= $value;
}
$return .= '</optgroup>';
unset($options['A']);
}
foreach($options as $positie => $spelers){
if($positie != $prev_opt){
$return .= '<optgroup label="'.$posities[$positie].'">';
}
foreach($spelers as $value){
$return .= $value;
}
if($positie != $prev_opt){
$return .= '</optgroup>';
}
$prev_opt = $positie;
}
}
$return.= PHP_EOL . '</select>';
return $return;
}
$content .=<<<EOF
<form id="opstelling" method="post" action="{$_SERVER['REQUEST_URI']}">
<fieldset>
<legend>Thuisclub {$clubrow['thuisclub']}</legend>
EOF;
$aSpelers = set_players($clubrow['thuisclub_id']);
$content .= '<p>';
$content .= set_selectbox('keeper', $aSpelers, 'thuis');
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['thuis'][0]; $i++){
$content .= set_selectbox('verdediger',$aSpelers, 'thuis');
}
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['thuis'][1]; $i++){
$content .= set_selectbox('middenvelder',$aSpelers, 'thuis');
}
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['thuis'][2]; $i++){
$content .= set_selectbox('aanvaller',$aSpelers, 'thuis');
}
$content .= '</p>';
$content .=<<<EOF
</fieldset>
<fieldset><legend>Uitclub {$clubrow['uitclub']}</legend>
EOF;
$aSpelers = set_players($clubrow['uitclub_id']);
$content .= '<p>';
$content .= set_selectbox('keeper', $aSpelers, 'uit');
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['uit'][0]; $i++){
$content .= set_selectbox('verdediger',$aSpelers, 'uit');
}
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['uit'][1]; $i++){
$content .= set_selectbox('middenvelder',$aSpelers, 'uit');
}
$content .= '</p>';
$content .= '<p>';
for($i = 1; $i <= $aOpstelling['uit'][2]; $i++){
$content .= set_selectbox('aanvaller',$aSpelers, 'uit');
}
$content .= '</p>';
$content .=<<<EOF
</fieldset>
<input type="submit" value="verstuur" onclick="return check_lineup();"/>
</form>
</div>
</body>
</html>
EOF;
}
}
?>
Alvast bedankt voor jullie hulp.
Niemand?
Heb je ergens ook nog het idtje van de speler die geselecteerd moet worden? Zie het zo 1 2 3 niet tussen je script te staan.
Je weet zelf al waar de relevante code te vinden is, maar plaatst toch nog de volledige 250 regels code? Dit maakt het er niet echt overzichtelijk op. Pas AUB even je post aan en reduceer het aantal lijnen code hier.
En BUMPen mag pas 24u na je laatste post!
En BUMPen mag pas 24u na je laatste post!
@Kitty: Nee die heb ik zo niet. Ik zou eerlijk gezegd ook niet weten hoe ik die er uit moet halen. Als je wilt kan ik de sql hier wel posten? Heb je daar wat aan?
@Hipska: Ik heb opzettelijk de volledige code geplaatst zodat het voor de mensen die willen helpen misschien duidelijk is welke gegevens gebruikt kunnen worden.
Ik hoop dat jullie kunnen helpen.
@Hipska: Ik heb opzettelijk de volledige code geplaatst zodat het voor de mensen die willen helpen misschien duidelijk is welke gegevens gebruikt kunnen worden.
Ik hoop dat jullie kunnen helpen.
Zoals kitty al zegt, moet je ergens in je script kunnen weten welke speler geselecteerd is.
Hoe geef je een geselecteerde speler aan?
Hoe geef je een geselecteerde speler aan?
@ Jurgen,
Hipska geeft het ook al aan. Je moet eerst weten welke speler je moet selecteren daarvoor het het id van de speler nodig, anders kan je deze niet selecteren bij het open van de pagina.
Hipska geeft het ook al aan. Je moet eerst weten welke speler je moet selecteren daarvoor het het id van de speler nodig, anders kan je deze niet selecteren bij het open van de pagina.
Ja nu geef ik die blijkbaar dus nog niet aan.
Hier de SQL:
Hier de SQL:
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
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
CREATE TABLE IF NOT EXISTS `opstelling` (
`id` int(12) unsigned NOT NULL AUTO_INCREMENT,
`wedstrijd_id` int(8) unsigned NOT NULL,
`speler_id` int(8) unsigned NOT NULL,
`club_id` int(8) unsigned NOT NULL,
`tijd_in` int(3) unsigned NOT NULL,
`tijd_uit` int(3) unsigned NOT NULL,
`positie` enum('K','V','M','A') NOT NULL,
`wissel_voor` int(8) unsigned DEFAULT NULL,
`pos_volgnr` int(3) unsigned NOT NULL,
`reden_wissel` enum('geen','blessure') NOT NULL DEFAULT 'geen',
PRIMARY KEY (`id`),
KEY `speler_id` (`speler_id`),
KEY `club_id` (`club_id`),
KEY `wissel_voor` (`wissel_voor`),
KEY `wissel_voor_2` (`wissel_voor`),
KEY `wedstrijd_id` (`wedstrijd_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;
--
-- Gegevens worden uitgevoerd voor tabel `opstelling`
--
INSERT INTO `opstelling` (`id`, `wedstrijd_id`, `speler_id`, `club_id`, `tijd_in`, `tijd_uit`, `positie`, `wissel_voor`, `pos_volgnr`, `reden_wissel`) VALUES
(1, 1, 64, 3, 0, 90, 'K', NULL, 1, 'geen'),
(2, 1, 2, 1, 0, 90, 'K', NULL, 1, 'geen'),
(3, 1, 63, 3, 0, 90, 'V', NULL, 1, 'geen'),
(4, 1, 71, 3, 0, 90, 'V', NULL, 2, 'geen'),
(5, 1, 68, 3, 0, 90, 'V', NULL, 3, 'geen'),
(6, 1, 3, 1, 0, 90, 'V', NULL, 1, 'geen'),
(7, 1, 10, 1, 0, 90, 'V', NULL, 2, 'geen'),
(8, 1, 4, 1, 0, 90, 'V', NULL, 3, 'geen'),
(9, 1, 79, 3, 0, 90, 'M', NULL, 1, 'geen'),
(10, 1, 77, 3, 0, 90, 'M', NULL, 2, 'geen'),
(11, 1, 80, 3, 0, 90, 'M', NULL, 3, 'geen'),
(12, 1, 12, 1, 0, 90, 'M', NULL, 1, 'geen'),
(13, 1, 18, 1, 0, 90, 'M', NULL, 2, 'geen'),
(14, 1, 13, 1, 0, 90, 'M', NULL, 3, 'geen'),
(15, 1, 88, 3, 0, 90, 'A', NULL, 1, 'geen'),
(16, 1, 89, 3, 0, 90, 'A', NULL, 2, 'geen'),
(17, 1, 87, 3, 0, 90, 'A', NULL, 3, 'geen'),
(18, 1, 84, 3, 0, 90, 'A', NULL, 4, 'geen'),
(19, 1, 90, 1, 0, 90, 'A', NULL, 1, 'geen'),
(20, 1, 29, 1, 0, 90, 'A', NULL, 2, 'geen'),
(21, 1, 24, 1, 0, 90, 'A', NULL, 3, 'geen'),
(22, 1, 23, 1, 0, 90, 'A', NULL, 4, 'geen');
`id` int(12) unsigned NOT NULL AUTO_INCREMENT,
`wedstrijd_id` int(8) unsigned NOT NULL,
`speler_id` int(8) unsigned NOT NULL,
`club_id` int(8) unsigned NOT NULL,
`tijd_in` int(3) unsigned NOT NULL,
`tijd_uit` int(3) unsigned NOT NULL,
`positie` enum('K','V','M','A') NOT NULL,
`wissel_voor` int(8) unsigned DEFAULT NULL,
`pos_volgnr` int(3) unsigned NOT NULL,
`reden_wissel` enum('geen','blessure') NOT NULL DEFAULT 'geen',
PRIMARY KEY (`id`),
KEY `speler_id` (`speler_id`),
KEY `club_id` (`club_id`),
KEY `wissel_voor` (`wissel_voor`),
KEY `wissel_voor_2` (`wissel_voor`),
KEY `wedstrijd_id` (`wedstrijd_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;
--
-- Gegevens worden uitgevoerd voor tabel `opstelling`
--
INSERT INTO `opstelling` (`id`, `wedstrijd_id`, `speler_id`, `club_id`, `tijd_in`, `tijd_uit`, `positie`, `wissel_voor`, `pos_volgnr`, `reden_wissel`) VALUES
(1, 1, 64, 3, 0, 90, 'K', NULL, 1, 'geen'),
(2, 1, 2, 1, 0, 90, 'K', NULL, 1, 'geen'),
(3, 1, 63, 3, 0, 90, 'V', NULL, 1, 'geen'),
(4, 1, 71, 3, 0, 90, 'V', NULL, 2, 'geen'),
(5, 1, 68, 3, 0, 90, 'V', NULL, 3, 'geen'),
(6, 1, 3, 1, 0, 90, 'V', NULL, 1, 'geen'),
(7, 1, 10, 1, 0, 90, 'V', NULL, 2, 'geen'),
(8, 1, 4, 1, 0, 90, 'V', NULL, 3, 'geen'),
(9, 1, 79, 3, 0, 90, 'M', NULL, 1, 'geen'),
(10, 1, 77, 3, 0, 90, 'M', NULL, 2, 'geen'),
(11, 1, 80, 3, 0, 90, 'M', NULL, 3, 'geen'),
(12, 1, 12, 1, 0, 90, 'M', NULL, 1, 'geen'),
(13, 1, 18, 1, 0, 90, 'M', NULL, 2, 'geen'),
(14, 1, 13, 1, 0, 90, 'M', NULL, 3, 'geen'),
(15, 1, 88, 3, 0, 90, 'A', NULL, 1, 'geen'),
(16, 1, 89, 3, 0, 90, 'A', NULL, 2, 'geen'),
(17, 1, 87, 3, 0, 90, 'A', NULL, 3, 'geen'),
(18, 1, 84, 3, 0, 90, 'A', NULL, 4, 'geen'),
(19, 1, 90, 1, 0, 90, 'A', NULL, 1, 'geen'),
(20, 1, 29, 1, 0, 90, 'A', NULL, 2, 'geen'),
(21, 1, 24, 1, 0, 90, 'A', NULL, 3, 'geen'),
(22, 1, 23, 1, 0, 90, 'A', NULL, 4, 'geen');
Antwoord nou gewoon eens op onze vragen en wij kunnen uw vraag oplossen.
HOE moet het script weten welke speler is geselecteerd?
Is het door een POST te doen? of komt dit uit de DB? of nog een andere optie?
Quote:
Alleen bij het openen van het script toont hij in de select boxen niet de speler die op dat moment is geselecteerd
HOE moet het script weten welke speler is geselecteerd?
Is het door een POST te doen? of komt dit uit de DB? of nog een andere optie?
'Jurgen:
Ja nu geef ik die blijkbaar dus nog niet aan.
Moet je eerst even kijken waar je het id van de speler vandaan gaat halen. Want ik weet niet welke speler je wilt selecteren of aan de hand waarvan.
@Hipska & Kitty: Excuses dat ik het niet helemaal begrijp. Helemaal boven in het script staat het match_id. Aan de hand van dit match_id kan er in de database in de tabel opstelling (SQL code hierboven) worden gekeken welke spelers opgesteld staan. In de tabel staat ook een pos_volgnr .. het eerste drowpdown veld is nr 1 en het tweede is volgnr 2.
Is het zo wat duidelijker?
Is het zo wat duidelijker?
En wat wil je nu?
Je haalt dus uit een DB een lijstje met spelers die deze match meegedaan hebben en steekt ze in een dropdown box.
Welke speler moet er dan geselecteerd zijn?
Je haalt dus uit een DB een lijstje met spelers die deze match meegedaan hebben en steekt ze in een dropdown box.
Welke speler moet er dan geselecteerd zijn?
Staat deze site ook al online zodat we een voorbeeldje hebben? Ik snap ook niet precies wat er nu gedaan moet worden.
EDIT: Even kijken of ik het begrijp. Je haalt een match id op. Aan de hand daarvan worden er 2 teams opgehaald(uit en thuis). Dan heb je een opstelling voor het thuis team.
De keeper staat ingevuld, op de plaats van de keeper moet dus een dropdown komen. Daar moet dan de keeper automatisch ingevuld staan?
Dus stel je hebt de volgende keepers:
1. pietje
2. jantje
jantje keept die wedstrijd dan moet jantje dus geselecteerd zijn? en pietje er nog gewoon bij staan?
EDIT: Even kijken of ik het begrijp. Je haalt een match id op. Aan de hand daarvan worden er 2 teams opgehaald(uit en thuis). Dan heb je een opstelling voor het thuis team.
De keeper staat ingevuld, op de plaats van de keeper moet dus een dropdown komen. Daar moet dan de keeper automatisch ingevuld staan?
Dus stel je hebt de volgende keepers:
1. pietje
2. jantje
jantje keept die wedstrijd dan moet jantje dus geselecteerd zijn? en pietje er nog gewoon bij staan?
Gewijzigd op 01/01/1970 01:00:00 door kitty N
Dag Kitty .. zoals jij het omschrijft klopt het precies!
Momenteel worden alle keepers e.d. al wel opgehaald alleen de juiste keeper wordt nog niet geselecteerd.
Momenteel worden alle keepers e.d. al wel opgehaald alleen de juiste keeper wordt nog niet geselecteerd.
Heb je al wel een ID van die keeper die opgesteld moet worden in je formulier?
Want als je dat hebt krijg je zoiets:
Want als je dat hebt krijg je zoiets:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if($speler_result = mysql_query($speler_query))
{
$aSpelers = array();
while($speler_row = mysql_fetch_assoc($speler_result))
{
///Hier $idkeeper vervangen door het id wat je al hebt van de keeper.
if($speler_row['id'] == $idkeeper)
{
$aSpelers[$speler_row['positie']][] = '<option value="'.$speler_row['id'].'" selected>'.htmlentities($speler_row['naam']).'</option>';
}
else
{
$aSpelers[$speler_row['positie']][] = '<option value="'.$speler_row['id'].'">'.htmlentities($speler_row['naam']).'</option>';
}
}
}
?>
if($speler_result = mysql_query($speler_query))
{
$aSpelers = array();
while($speler_row = mysql_fetch_assoc($speler_result))
{
///Hier $idkeeper vervangen door het id wat je al hebt van de keeper.
if($speler_row['id'] == $idkeeper)
{
$aSpelers[$speler_row['positie']][] = '<option value="'.$speler_row['id'].'" selected>'.htmlentities($speler_row['naam']).'</option>';
}
else
{
$aSpelers[$speler_row['positie']][] = '<option value="'.$speler_row['id'].'">'.htmlentities($speler_row['naam']).'</option>';
}
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door kitty N
Nee die heb ik nog niet. Zou je willen laten zien hoe ik dat voor elkaar krijg? Alsvast bedankt voor het helpen dit maakt het al een stuk duidelijker.
Alleen het implementeren gaat me zo te zien erg slecht af. Ik kan wel wat programmeren, maar dit script is eigenlijk veel te complex voor mij.
Alleen het implementeren gaat me zo te zien erg slecht af. Ik kan wel wat programmeren, maar dit script is eigenlijk veel te complex voor mij.
Nou je moet eerst kijken wat het id van de keeper is, dit zit waarschijnlijk in een variable. Deze variable zet je dan op de plaats $idkeeper
Dat stukje wat ik heb staan moet je in dat stuk plaatsen waar je zelf aan aangaf (126)
Dit stuk dus vervangen(vanaf regel 123):
Dat stukje wat ik heb staan moet je in dat stuk plaatsen waar je zelf aan aangaf (126)
Dit stuk dus vervangen(vanaf regel 123):
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if($speler_result = mysql_query($speler_query)){
$aSpelers = array();
while($speler_row = mysql_fetch_assoc($speler_result)){
$aSpelers[$speler_row['positie']][] = '<option value="'.$speler_row['id'].'">'.htmlentities($speler_row['naam']).'</option>';
}
?>
if($speler_result = mysql_query($speler_query)){
$aSpelers = array();
while($speler_row = mysql_fetch_assoc($speler_result)){
$aSpelers[$speler_row['positie']][] = '<option value="'.$speler_row['id'].'">'.htmlentities($speler_row['naam']).'</option>';
}
?>
Bedankt .. nu krijg ik:
Notice: Undefined variable: idkeeper in wedstrijd-detail-opst-bewerk.php on line 127
Notice: Undefined variable: idkeeper in wedstrijd-detail-opst-bewerk.php on line 127
Ja die moet je vervangen door het id van de keeper, ik weet niet waar die vandaan komt namelijk ;)
Ja dat is nou juist het probleem! Hij zou uit de database moeten komen denk ik, want als ik het zo zien wordt die nergens anders opgehaald.
In het script waar we de spelers weergeven staat wel deze query, misschien dat je daar wat meer kunt?
Als je wilt kan ik daar ook nog alle bij plakken wat in die foreach lus staat?!
In het script waar we de spelers weergeven staat wel deze query, misschien dat je daar wat meer kunt?
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
59
60
61
62
63
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
59
60
61
62
63
$opst_sql = "SELECT
o.speler_id,
o.club_id,
o.tijd_in,
o.tijd_uit,
o.positie,
o.wedstrijd_id,
o.wissel_voor AS id_voor,
CASE o.pos_volgnr
WHEN 'NULL'
THEN (SELECT pos_volgnr FROM opstelling WHERE speler_id = id_voor AND wedstrijd_id={$wedstrijd_id})
ELSE o.pos_volgnr END AS gen_pos_volgnr,
c.naam AS clubnaam,
CONCAT(s.tussenvoegsel,' ',s.achternaam) AS spelernaam,
CONCAT(s.voornaam,' ',s.tussenvoegsel,' ',s.achternaam) AS volledige_naam,
(SELECT CONCAT(s.voornaam,' ',s.tussenvoegsel,' ',s.achternaam) FROM spelers AS s WHERE id=wissel_voor AND wedstrijd_id={$wedstrijd_id}) AS in_voor
FROM
opstelling AS o
INNER JOIN
(spelers AS s
INNER JOIN
(clubs AS c
INNER JOIN
speler_clubs AS sc
ON
sc.club_id = c.id)
ON
sc.speler_id = s.id)
ON
s.id = o.speler_id
WHERE
(
(
o.tijd_in >= {$minuut}
AND
o.tijd_uit < {$minuut}
)
OR
(
o.tijd_in <= {$minuut}
AND
o.tijd_uit > {$minuut}
)
OR
(
o.tijd_in <= {$minuut}
AND
o.tijd_uit >= {$max_tijd['max_tijd']}
)
)
AND
wedstrijd_id={$wedstrijd_id}
AND o.club_id={$value}
GROUP BY
o.id
ORDER BY
o.wedstrijd_id,
o.club_id,
o.positie,
gen_pos_volgnr,
s.achternaam
";
o.speler_id,
o.club_id,
o.tijd_in,
o.tijd_uit,
o.positie,
o.wedstrijd_id,
o.wissel_voor AS id_voor,
CASE o.pos_volgnr
WHEN 'NULL'
THEN (SELECT pos_volgnr FROM opstelling WHERE speler_id = id_voor AND wedstrijd_id={$wedstrijd_id})
ELSE o.pos_volgnr END AS gen_pos_volgnr,
c.naam AS clubnaam,
CONCAT(s.tussenvoegsel,' ',s.achternaam) AS spelernaam,
CONCAT(s.voornaam,' ',s.tussenvoegsel,' ',s.achternaam) AS volledige_naam,
(SELECT CONCAT(s.voornaam,' ',s.tussenvoegsel,' ',s.achternaam) FROM spelers AS s WHERE id=wissel_voor AND wedstrijd_id={$wedstrijd_id}) AS in_voor
FROM
opstelling AS o
INNER JOIN
(spelers AS s
INNER JOIN
(clubs AS c
INNER JOIN
speler_clubs AS sc
ON
sc.club_id = c.id)
ON
sc.speler_id = s.id)
ON
s.id = o.speler_id
WHERE
(
(
o.tijd_in >= {$minuut}
AND
o.tijd_uit < {$minuut}
)
OR
(
o.tijd_in <= {$minuut}
AND
o.tijd_uit > {$minuut}
)
OR
(
o.tijd_in <= {$minuut}
AND
o.tijd_uit >= {$max_tijd['max_tijd']}
)
)
AND
wedstrijd_id={$wedstrijd_id}
AND o.club_id={$value}
GROUP BY
o.id
ORDER BY
o.wedstrijd_id,
o.club_id,
o.positie,
gen_pos_volgnr,
s.achternaam
";
Als je wilt kan ik daar ook nog alle bij plakken wat in die foreach lus staat?!
Daarin staat o.speler_id, waar geef je die weer?




