Rekensom gegevens uit MySQL
Het volgende moet gebeuren:
De tabel cijfers bestaat uit
naam | vak | cijfer | waarde
Nu moeten de cijfers van vak $_GET['vak'] geselecteerd worden, en van de naam ".$naam." .
Nu moet ie alle cijfers van het vak en waarde de naam = $naam, selecteren en er het volgende mee doen:
- Alle waardes optellen en bv. geven naam waardes
- Alle punten ($cijfer*$waarde) moeten opgeteld worden met de naam totaal
Ik weet echt niet hoe het moet? Iemand anders idee?
BVD
Ik neem aan dat het een database is, en dat je je pagina oproept met blaat.php?vak=engels ofzo. Wat je er dan precies mee wil doen kan ik niet uit je tekst halen, maar ik gok dat het dan zou het zoiets worden.
<table>
<tr><td colspan="4">Cijfers van voor het vak </td></tr>
<tr><td>#</td><td>Cijfer</td><td>Waarde</td><td>Cijfer * Waarde</td></tr>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$vakTotaal = 0;
$cijferTotaal = 0;
$waardeTotaal = 0;
$tellingTotaal = 0;
$result = mysql_query("SELECT cijfer, waarde, cijfer * waarde AS telling WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
while ($row = mysql_fetch_object($result)) {
$vakTotaal++;
$cijferTotaal += $row->cijfer;
$waardeTotaal += $row->waarde;
$tellingTotaal += $row->telling;
echo '<tr><td>'.$vakTotaal.'</td><td>'.$row->cijfer.'</td><td>'.$row->waarde.'</td><td>'.$row->telling.'</td></tr>';
}
?>
$vakTotaal = 0;
$cijferTotaal = 0;
$waardeTotaal = 0;
$tellingTotaal = 0;
$result = mysql_query("SELECT cijfer, waarde, cijfer * waarde AS telling WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
while ($row = mysql_fetch_object($result)) {
$vakTotaal++;
$cijferTotaal += $row->cijfer;
$waardeTotaal += $row->waarde;
$tellingTotaal += $row->telling;
echo '<tr><td>'.$vakTotaal.'</td><td>'.$row->cijfer.'</td><td>'.$row->waarde.'</td><td>'.$row->telling.'</td></tr>';
}
?>
<tr><td>Totaal:</td><td></td><td></td><td></td></tr>';
<tr><td>Gemiddeld:</td><td></td><td></td><td></td></tr>
</table>
Ik heb er maar een tabel van gemaakt waarin alle gegevens komen te staan met daaronder twee rijen met het totaal en het gemiddelde.
Mag je zelf kijken wat je ervan nodig hebt.
Gewijzigd op 03/10/2004 11:19:00 door dutchcamel
Het werkt alleen niet, het word inderdaad opgevraagd met leden.php?p=cijfers&vak=AK (2 letters van vak).
Erorr:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/bncijfers/cijfers.php on line 42
Connectie met DB is al eerder gemaakt..
?
Is de tabel nog leeg?
Nee, tabel is gwoon niet aangeroepen
ZIt een klein foutje in:
Code (php)
1
2
3
2
3
<?php
$result = mysql_query("SELECT cijfer, waarde, cijfer * waarde AS telling WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
?>
$result = mysql_query("SELECT cijfer, waarde, cijfer * waarde AS telling WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
?>
PHP weet niet welke tabel..
heb ervan gemaakt:
Code (php)
1
2
3
2
3
<?php
$result = mysql_query("SELECT cijfer, waarde, cijfer * waarde AS telling FROM cijfers WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
?>
$result = mysql_query("SELECT cijfer, waarde, cijfer * waarde AS telling FROM cijfers WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
?>
Het werkt!!..
Bedankt!!
Gewijzigd op 03/10/2004 11:26:00 door Jorik
At your service :)
Weer wat geleerd :) (ik en jij ;) )
De bedoeling is, dat het het gemiddelde van alle cijfers van naam=naam en vak=vak opvraagt :)..
Of heb ik het script nu weer zover verknald :$
Volgende :):
Nu moet ie nog afronden op 2 tienden, dus alst 5,333333333333 is dat het 5,33 word, en als het 5,4466 dat het 5,45 word..
script naar wijzigen:
<table width="100%">
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$vakTotaal = 0;
$cijferTotaal = 0;
$waardeTotaal = 0;
$tellingTotaal = 0;
$result = mysql_query("SELECT cijfer,waarde,cijfer*waarde AS telling FROM cijfers WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
while ($row = mysql_fetch_object($result)) {
$vakTotaal++;
$cijferTotaal += $row->cijfer;
$waardeTotaal += $row->waarde;
$tellingTotaal += $row->telling;
#echo "<tr><td>".$vakTotaal."</td><td>".$row->cijfer."</td><td>".$row->waarde."</td><td>".$row->telling."</td></tr>";
#echo "<tr>\n";
#echo "<td align='center'>".$row->cijfer."</td>";
#echo "</tr>\n";
}
?>
$vakTotaal = 0;
$cijferTotaal = 0;
$waardeTotaal = 0;
$tellingTotaal = 0;
$result = mysql_query("SELECT cijfer,waarde,cijfer*waarde AS telling FROM cijfers WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
while ($row = mysql_fetch_object($result)) {
$vakTotaal++;
$cijferTotaal += $row->cijfer;
$waardeTotaal += $row->waarde;
$tellingTotaal += $row->telling;
#echo "<tr><td>".$vakTotaal."</td><td>".$row->cijfer."</td><td>".$row->waarde."</td><td>".$row->telling."</td></tr>";
#echo "<tr>\n";
#echo "<td align='center'>".$row->cijfer."</td>";
#echo "</tr>\n";
}
?>
<tr>
<td></td>
</tr>
</table>
hoe moet dat :P?
<table>
<tr><td colspan="4">Cijfers van voor het vak </td></tr>
<tr><td>#</td><td>Cijfer</td><td>Waarde</td><td>Cijfer * Waarde</td></tr>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$vakTotaal = 0;
$cijferTotaal = 0;
$waardeTotaal = 0;
$tellingTotaal = 0;
$result = mysql_query("SELECT cijfer, waarde, cijfer * waarde AS telling FROM cijfers WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
while ($row = mysql_fetch_object($result)) {
$vakTotaal++;
$cijferTotaal += $row->cijfer;
$waardeTotaal += $row->waarde;
$tellingTotaal += $row->telling;
echo '<tr><td>'.$vakTotaal.'</td><td>'.$row->cijfer.'</td><td>'.$row->waarde.'</td><td>'.$row->telling.'</td></tr>';
}
?>
$vakTotaal = 0;
$cijferTotaal = 0;
$waardeTotaal = 0;
$tellingTotaal = 0;
$result = mysql_query("SELECT cijfer, waarde, cijfer * waarde AS telling FROM cijfers WHERE vak = '".$_GET['vak']."' AND naam = '".$naam."'");
while ($row = mysql_fetch_object($result)) {
$vakTotaal++;
$cijferTotaal += $row->cijfer;
$waardeTotaal += $row->waarde;
$tellingTotaal += $row->telling;
echo '<tr><td>'.$vakTotaal.'</td><td>'.$row->cijfer.'</td><td>'.$row->waarde.'</td><td>'.$row->telling.'</td></tr>';
}
?>
<tr><td>Totaal:</td><td></td><td></td><td></td></tr>';
<tr><td>Gemiddeld:</td><td></td><td></td><td></td></tr>
<tr><td colspan="2">Totaalgemiddelde:</td><td colspan="2"></td></tr>
</table>
Waar rond ie nu af dan :s ?
Dat doe je met number_format();
<tr>
<td></td>
</tr>
Verander je dus in:
<tr>
<td></td>
</tr>
2 staat voor het aantal decimalen.
naja, het werkt, daar gaat het om :)
Bedankt
Je hebt nu je afronding.
Quote:
naam | vak | cijfer | waarde
Nu moeten de cijfers van vak $_GET['vak'] geselecteerd worden, en van de naam ".$naam." .
[1] Alle waardes optellen en bv. geven naam waardes
[2] Alle punten ($cijfer*$waarde) moeten opgeteld worden met de naam totaal
Nu moeten de cijfers van vak $_GET['vak'] geselecteerd worden, en van de naam ".$naam." .
[1] Alle waardes optellen en bv. geven naam waardes
[2] Alle punten ($cijfer*$waarde) moeten opgeteld worden met de naam totaal
SELECT naam, round(sum(cijfer*waarde)/sum(waarde)),2) as eindcijfer, vak FROM cijfers
GROUP BY naam, vak;
Zal een lijst geven van alle namen met cijfers afgerond op 2 decimalen per vak.
Eventueel kan je die nog aanpassen dat je per naam een lijst met vakken krijgt, of per vak een lijst met namen.
Grtz,
Arend
Toch bedankt ;)
(geen zin in te logge)