array uit variabele opslaan in mysql
Ik wil een voetbalpoule maken en vergelijk de voorspellingen met de werkelijke uitslagen. Dar laat ik punten uit berekenen. Tot nu toe gaat dat. Nu wil ik echter de berekende punten weer opslaan in de tabel waar de deelnemer zijn voorspelling heeft gedaan, maar dat lukt me niet. Wie kan me helpen. De code die ik tot nu toe werkend heb komt hieronder, de gescoorde punten kan ik in de tabel per regel te zien krijgen en haal zoals je kunt zien de gegevens uit twee tabellen (voorsp en uitslag) de berekende punten wil ik graag in de tabel voorspellingen plaatsen (of in een andere, dat maakt me niet uit)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>test 6</title>
</head>
<body>
<form method="get" action="test6.php">
<table>
<tbody>
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
<?php
$db = mysql_connect("localhost","root","*******")or die("Verbinding Mislukt");
mysql_select_db("wk2010",$db);
$sql = "SELECT `voorsp`.`id`,`voorsp`.`thuis`, `voorsp`.`uit`, `uitslag`.`thuis`, `uitslag`.`uit`FROM `voorsp`,`uitslag` WHERE \n"
. "`voorsp`.`wed_id`=`uitslag`.`wed_id` LIMIT 0, 30 ";
$resultset = mysql_query($sql);
while($data = mysql_fetch_array($resultset)) {
echo
'<tr>
<td>'.$data[0].'<br>
</td>
<td>'.$data[1].'<br>
</td>
<td>'.$data[2].'<br>
</td>
<td>'.$data[3].'<br>
</td>
<td>'.$data[4].'<br>
</td>';
if($data[1]==$data[2] and $data[3]==$data[4])
$eerste = 10;
else
$eerste = 0;
if($data[1]<$data[2] and $data[3]<$data[4])
$tweede = 10;
else
$tweede = 0;
if($data[1]>$data[2] and $data[3]>$data[4])
$derde = 10;
else
$derde = 0;
if($data[1]==$data[3] and $data[2]==$data[4])
$vierde = 10;
else
$vierde = 0;
if($data[1]==$data[3])
$vijfde = 10;
else
$vijfde = 0;
if($data[2]==$data[4])
$zesde = 10;
else
$zesde = 0;
$subtotaal=$eerste+$tweede+$derde+$vierde+$vijfde+$zesde;
print '<td><input type="text" name="subtot" value='.$subtotaal.' size="3" />
<br></td>';}?>
$db = mysql_connect("localhost","root","*******")or die("Verbinding Mislukt");
mysql_select_db("wk2010",$db);
$sql = "SELECT `voorsp`.`id`,`voorsp`.`thuis`, `voorsp`.`uit`, `uitslag`.`thuis`, `uitslag`.`uit`FROM `voorsp`,`uitslag` WHERE \n"
. "`voorsp`.`wed_id`=`uitslag`.`wed_id` LIMIT 0, 30 ";
$resultset = mysql_query($sql);
while($data = mysql_fetch_array($resultset)) {
echo
'<tr>
<td>'.$data[0].'<br>
</td>
<td>'.$data[1].'<br>
</td>
<td>'.$data[2].'<br>
</td>
<td>'.$data[3].'<br>
</td>
<td>'.$data[4].'<br>
</td>';
if($data[1]==$data[2] and $data[3]==$data[4])
$eerste = 10;
else
$eerste = 0;
if($data[1]<$data[2] and $data[3]<$data[4])
$tweede = 10;
else
$tweede = 0;
if($data[1]>$data[2] and $data[3]>$data[4])
$derde = 10;
else
$derde = 0;
if($data[1]==$data[3] and $data[2]==$data[4])
$vierde = 10;
else
$vierde = 0;
if($data[1]==$data[3])
$vijfde = 10;
else
$vijfde = 0;
if($data[2]==$data[4])
$zesde = 10;
else
$zesde = 0;
$subtotaal=$eerste+$tweede+$derde+$vierde+$vijfde+$zesde;
print '<td><input type="text" name="subtot" value='.$subtotaal.' size="3" />
<br></td>';}?>
</tr>
<tr>
<td>
<input type="submit" name="Submit" value="verstuur">
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Matt van Leest
Toon eens welke tabellen je hebt en welke velden (eventueel het type posten) elke tabel heeft.
id int auto_increment primary key
user_id int
wed_id (wedstrijdnummer) int
thuis int (thuisdoelpunten)
uit int (doelpunten van de tegenpartij)
punt int (hierin moeten de gescoorde punten komen die berekend zijn uit bovenstaande code)
andere tabel uitslag (de werkelijke uitslag)
id int auto_increment primary key
wed_id (wedstrijdnummer) int
thuis int (thuisdoelpunten)
uit int (doelpunten van de tegenpartij)
De voorspellingen worden gecontroleerd a.d.v. de werkelijke uitslagen en er worden punten aan toegekend.
Ik hoop dat het duidelijker is geworden.
Matt schreef op 07.07.2009 14:43:
Ik ben nog niet volledig met de structuur bezig maar me al aan het orienteren waar ik qua code problemen verwacht.
Wacht, lees ik dat nou goed? Je hebt je database model nog niet 100% opgezet en je bent al begonnen met scripten?
Dat is niet echt een goed stappenplan als je het mij vraagt... Ga eerst eens je datamodel afmaken. Daar is je website namelijk helemaal van afhankelijk.
Jammer, ik had gehoopt antwoord op mijn vraag te krijgen, dan een lezing wat ik wel en niet zou moeten doen. Volgens mij is de probleemstelling duidelijk genoeg om een antwoord te krijgen waar ik iets mee kan.
Matt schreef op 06.07.2009 23:58:
Dit wil je dan waarschijnlijk ook niet horen, gezien je reactie op de andere posters. Maar data die je gewoon kan berekenen sla je niet op in een database maar die bereken je op het moment dat je het nodig hebt.... Nu wil ik echter de berekende punten weer opslaan in de tabel ...
Matt schreef op 08.07.2009 11:48:
Jammer, ik had gehoopt antwoord op mijn vraag te krijgen, dan een lezing wat ik wel en niet zou moeten doen. Volgens mij is de probleemstelling duidelijk genoeg om een antwoord te krijgen waar ik iets mee kan.
En we zouden je enorm graag willen helpen, maar we zouden alleen een tijdelijk antwoord kunnen geven op je vraag, omdat je tegen problemen blijft aanlopen met een verkeerde opzet (in deze context een verkeerd datamodel) . Leer het jezelf gewoon goed aan, en je blijft er altijd profijt van hebben.
Ik wil overigens het subtotaal opslaan omdat er nog meer subtotalen berekend worden om deze later op te kunnen tellen in een eindtotaal.
Deze subtotalen worden weer gehaald bv heeft men het aantal gele kaarten goed of wie speelt de finale etc.
Ik begin me te realiseren al deze subtotalen op te tellen in 1 pagina met misschien een of meerdere query's. Ben ik op de goede weg?
http://www.phphulp.nl/php/tutorials/3/426/
Maar vind ik zo, met snel een blik werpen, er niet briljant uit zien (met alle respect voor maker hoor) . Kijk of ik zo betere kan vinden.
Maar vind ik zo, met snel een blik werpen, er niet briljant uit zien (met alle respect voor maker hoor) . Kijk of ik zo betere kan vinden.
@ emmanuel: Die zocht ik ja ;) (maar mijn zoekterm was normalisatie, en niet normaliseren..... )
Ik heb een kant en klaar systeem voor je, pm me, als je wil natuurlijk.
Bedankt voor de reactie, ik word al wijzer.