• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Gemiddelde berekenen met weging.

  • L.Groot
  • 6 maart 2010 om 16:19
  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 6 maart 2010 om 16:19
    • #1

    Beste CP'ers,

    Voor m'n school moest ik een overhoor script schrijven. (hier heb ik al vaker wat over gevraagd)
    Dit is me nu helemaal gelukt.
    Je kan nu bij een toets aanmaken de weging instellen (bv. 1, dus dan staat er 1 cijfer en bij 5 staan er 5 cijfers etc.)
    Maar, hoe kan ik nu het gemakkelijkst daarmee het gemiddelde berekenen?

    Ik heb nu onderstaand script voor het gemiddelde, maar dit gaat gewoon via MySQL, en daar kan ik dus nog geen weging instellen, terwijl ik dit wel wil.

    PHP
    <h2>Gemiddelden:</h2>
    <table border="1" color="#66665E" cellspacing="0.1" cellpadding="3" width="50%">
    <tr class="d0" align="center">
    <td><b>Vak</b></td>
    <td><b>Gemiddelde</b></td>
    </tr>
    <?php
    $people = Array('Grieks','Latijns','Frans','Duits','Engels','Nederlands','Aardrijkskunde','Geschiedenis','Mythologie','Biologie','Wiskunde','Natuurkunde','Informatica','Scheikunde','Godsdienst','Beeldende Vorming','Economie');
    for($i = 0; $i < sizeof($people); ++$i){
    $result45 = mysql_query("SELECT AVG(cijfer) as cijfer FROM cijfers WHERE naam='".$get_userdata['username']."' && `vak`='".$people[$i]."'ORDER BY `vak`") or die(mysql_error());
    $count2 = mysql_fetch_array($result45);
    $countie = number_format($count2['cijfer'], 1, ',', '');
    if($countie != '0,0'){
    echo '<tr>';
    echo '<td>'.$people[$i].'</td>';
    if($countie < 5.5){ echo '<td><b><font color="red">'.$countie.'</font></b></td>'; } else{ echo '<td><b><font color="green">'.$countie.'</font></b></td>'; }
    echo '</tr>';
    }
    }
    ?>
    </table>
    Toon Meer

    Hoe krijg ik dit het kortst goed voor elkaar?
    Hoop dat jullie het weten!

    Lars Groot

  • Guest, wil je besparen op je domeinnamen? (ad)
  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 6 maart 2010 om 17:53
    • #2

    [offtopic]Ok vraag, welke school zit je?
    En welk jaar?

    Want ik zit op een webmaster opleiding in rotterdam.
    En krijg bijv ook van die opdrachten wat ik moet maken ;)
    [/offtopic]

    Ik heb je script ietsje korter gemaakt en makkelijker.
    Verder laat ik het nu aan iemand anders over om het nog korter te krijgen.

    PHP
    <?php 
    $people = array('Grieks','Latijns','Frans','Duits','Engels','Nederlands','Aardrijkskunde','Geschiedenis','Mythologie','Biologie','Wiskunde','Natuurkunde','Informatica','Scheikunde','Godsdienst','Beeldende Vorming','Economie'); 
    
    
    for($i = 0; $i < sizeof($people); ++$i)
    { 
    	$result45 = mysql_query("SELECT AVG(cijfer) as cijfer FROM cijfers WHERE naam='".$get_userdata['username']."' AND `vak`='".$people[$i]."'ORDER BY `vak`");
    	$count2 = mysql_fetch_assoc($result45); 
    	$countie = number_format($count2['cijfer'], 1, ',', '');
    	
    	if($countie != '0,0')
    	{
    		$kleur = $countie < 5.5 ? 'red' : 'green';
    		?>
    		<tr>
    			<td><?php echo $people[$i]; ?></td>
    			<td><strong><font color="<?php echo $kleur; ?>"><?php echo $countie; ?></font></strong></td>
    		</tr>
    		<?
    	}
    }
    ?>
    Toon Meer

    Volgens mij is het trouwens ook iets netter als je met een foreach gaat werken om alles uit te lezen, of heb ik het mis?

    Ik ben me aan het vervelen, dus zit nu je code goed door te nemen.
    Dit is al een verbetering! En je hebt een grote fout gemaakt met je num_format, weet ik wel zeker.

    Dus ik wil graag jou standaardwaarde zien die jij mee geeft in je database ? Geef je 0.0 mee of 0,0 ?

    Dit is de aangepaste:

    PHP
    <?php 
    $talen = array('Grieks','Latijns','Frans','Duits','Engels','Nederlands','Aardrijkskunde','Geschiedenis','Mythologie','Biologie','Wiskunde','Natuurkunde','Informatica','Scheikunde','Godsdienst','Beeldende Vorming','Economie'); 
    
    
    foreach($talen as $taal)
    { 
    	$result45 = mysql_query("SELECT AVG(cijfer) as cijfer FROM cijfers WHERE naam='".$get_userdata['username']."' AND vak='".$taal."'ORDER BY vak ASC");
    	$gegevens = mysql_fetch_assoc($result45); 
    	$countie = number_format($gegevens['cijfer'], 1, ',', '');
    	
    	if($countie != '0,0')
    	{
    		$kleur = $countie < 5.5 ? 'red' : 'green';
    		?>
    		<tr>
    			<td><?php echo $taal; ?></td>
    			<td><strong><font color="<?php echo $kleur; ?>"><?php echo $countie; ?></font></strong></td>
    		</tr>
    		<?
    	}
    }
    ?>
    Toon Meer

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 6 maart 2010 om 19:36
    • #3

    *gaat in op 'uitdaging' van NielsB*

    PHP
    <?php
    
    
    $result45 = mysql_query("
    SELECT
    	vak,
    	SUM(cijfer * weging) / SUM(weging) AS gemiddelde
    FROM
    	cijfers
    WHERE
    	naam='".$get_userdata['username']."'
    GROUP BY
    	vak
    HAVING
    	gemiddelde > 0
    ORDER BY
    	CASE vak
    		WHEN 'Grieks' THEN 1
    		WHEN 'Latijn' THEN 2
    		WHEN 'Frans' THEN 3
    		WHEN 'Duits' THEN 4
    		WHEN 'Engels' THEN 5
    		WHEN 'Nederlands' THEN 6
    		WHEN 'Aardrijkskunde' THEN 7
    		WHEN 'Geschiedenis' THEN 8
    		WHEN 'Mythologie' THEN 9
    		WHEN 'Biologie' THEN 10
    		WHEN 'Wiskunde' THEN 11
    		WHEN 'Natuurkunde' THEN 12
    		WHEN 'Informatica' THEN 13
    		WHEN 'Scheikunde' THEN 14
    		WHEN 'Godsdienst' THEN 15
    		WHEN 'Beeldende Vorming' THEN 16
    		WHEN 'Economie' THEN 17
    	END
    ASC");
    
    
    while($gegevens = mysql_fetch_assoc($result45))
    {
    	$kleur = floatval($gegevens['gemiddelde']) < 5.5 ? 'red' : 'green';
    ?>
            <tr>
                <td><?php echo $gegevens['vak']; ?></td>
                <td style="background-color: <?php echo $kleur; ?>; font-weight: bold;"><?php echo number_format($gegevens['gemiddelde'], 1, ',', ''); ?></td>
            </tr>
    <?
    }
    Toon Meer

    Het is korter wanneer je die query weer op een regel neer zet, maar minder overzichtelijk.
    Verder heb ik er wat dingen in verwerkt die je op phpfreakz ook al zijn verteld.

    miauw!

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 6 maart 2010 om 19:39
    • #4

    Ik geef toe je hebt jezelf weer lopen uitsloven.
    Respect DOS! (L)

    Maar die van mij is toch wat korter aangezien jij een grote query hebt :D!

    Lars ik hoop dat je hier nog wat aan hebt ;)
    Als je meer van die opdrachten hebt (A), dan hoor ik het graag :P

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • MrMees
    De causeur!
    Berichten
    464
    • 6 maart 2010 om 20:10
    • #5

    Woow, dat is echt de beste en meest ingewikkelde query die ik ooit heb gezien!
    Ga zeker even kijken naar wat je nou gedaan hebt bij dat case gebeuren.
    Dankje Dos:cheer:!

    Als ik dit zelf had moeten doen, had ik eerder op dat van NielsB gekomen :).

    EDIT: Verrekte handig die CASE END structuur!

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 6 maart 2010 om 22:08
    • #6

    Dankjullie wel, het is me gelukt ;)

    Ik heb net een MySQL5 & PHP 5 boek van de bieb geleend, ga die dus ff leren :)

    Bedankt!

    Lars

    Nieuwe reactie samengevoegd met originele reactie op 06.03.10 22:38:07:
    Ik heb nog een vraagje:
    Hoe kan ik het beste beveiligen tegen XSS / JavaScripts? Ik heb het nu over de inputs, dus welke PHP functie kan ik hier het beste voor gebruiken? Ik dacht zelf aan htmlentities();, of toch beter htmlspecialchars();?

    Hope you know!

    Lars Groot

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 7 maart 2010 om 10:06
    • #7

    Die case heeft dos gedaan om het leuker te maken ;)
    Je hebt die case helemala niet nodig eigenlijk, als je gewoon doet order by vak ASC

    verder , htmlspecialchars is daar goed voor, maar ik denk dat daar iemand anders beter op in kan springen.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • MrMees
    De causeur!
    Berichten
    464
    • 7 maart 2010 om 12:44
    • #8

    Naar mijn weten is htmlspecialchars() voldoende inderdaad, maar dat kan je beter pas gebruiken als je het uit de database haalt.

    Als je iets in de database doet kan je naar mijn weten het beste mysql_real_escape_string() gebruiken. Dit is voor strings.

    Met getallen kan je het beste eerst controleren of het een getal is door middel van ctype_digit(), daarna kan je er eventueel nog (int) voor zetten. Zelf zet ik dit er niet voor omdat ik het dubbel op vindt.

    Dit zijn de dingen die ik gebruik, verbeter alsjeblieft als ik iets fout zeg!

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design