• 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

  • Ictscripters Chat

    AarClay 21 april 2026 om 11:34
  • Het Grote Vibe Code Topic

    Jeroen.G 8 april 2026 om 14:00
  • PWYL source gezocht

    Syntax 25 maart 2026 om 11:44
  • Help testers nodig voor android app Urgent

    Servertjee 20 februari 2026 om 12:07
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    Servertjee 20 februari 2026 om 12:06
  • Afspraken systeem met planbeperking

    Jeffrey.Hoekman 20 februari 2026 om 11:52
  • Developer Gezocht

    Servertjee 19 februari 2026 om 17:31
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Servertjee 18 februari 2026 om 16:57

Marktplaats

  • 370 Nieuwe Domeinnamen April 2026

    shiga 1 mei 2026 om 12:06
  • Snel een website nodig?

    Syntax 10 april 2026 om 12:55
  • Sicarras.com - Moderne Mafia Text-Based RPG

    Syntax 5 april 2026 om 16:22

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

  • Google Cloud is in de problemen (en AWS weet het)

    ICTscripters 14 april 2026 om 12:01
  • Nebius kondigt bouw aan van een van Europa's grootste datacenters

    ICTscripters 31 maart 2026 om 12:03
  • Samsung zal miljoenen verdienen aan Apple iPhone Fold dankzij zijn 12GB RAM

    ICTscripters 11 maart 2026 om 22:42

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
  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