login  Naam:   Wachtwoord: 
Registreer je!
 Forum

if 1 (Opgelost)

Offline Frank56 - 29/09/2014 16:23
Avatar van Frank56Nieuw lid De cijfers die berekend worden bij nehar, nehat2, enhat2, cijfers gaan onder nul.

Nu moet het volgens mij mogelijk zijn om met een if else aan te geven dat het cijfer niet lager mag worden dan 1, maar wat ik ook probeer, het lukt niet.

Hoe moet ik dat aanpakken?



  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  6. <title></title>
  7.  
  8. <link rel= "stylesheet" href="menu_style.css" type="text/css" />
  9. <link href="opmaak3.css" rel="stylesheet" type="text/css"/>
  10.  
  11. </head>
  12.  
  13. <?php
  14.  
  15. include '../navigatie/nav.inc';
  16. include '../navigatie/nav60.inc';
  17.  
  18.  
  19.  
  20. // We gaan sessies gebruiken
  21.  
  22. // Gebruikersnaam en wachtwoord instellen
  23. $sGebruikerControle = '';
  24. $sWachtwoordControle = '';
  25.  
  26. // Controle of het formulier verzonden is
  27. if($_SERVER['REQUEST_METHOD'] == 'POST')
  28. {
  29. // Controle of benodigde velden wel ingevuld zijn
  30. if(isset($_POST['naam'], $_POST['ww']))
  31. {
  32. // Overbodige spaties verwijderen als er TRIM bij staat.
  33. $sGebruiker = $_POST['naam'];
  34. $sWachtwoord = $_POST['ww'];
  35.  
  36. // Gebruikersnaam en wachtwoord controleren
  37. if($sGebruiker == $sGebruikerControle && $sWachtwoord == $sWachtwoordControle)
  38. {
  39. // Juiste gebruikersnaam en wachtwoord: inloggen!
  40. $_SESSION['logged_in'] = true;
  41. $_SESSION['gebruiker'] = $sGebruiker;
  42.  
  43. // Doorsturen en melding geven
  44.  
  45. include ("db_connect.inc2.php");?>
  46.  
  47.  
  48. <p><br><br><br>
  49. <h2>kaarten havo met cijfers</h2>
  50.  
  51. <?php
  52.  
  53. function bepaalKleurInterval($color) {
  54. if (-10 <= $color && $color < 2) {
  55. $kleur = '#DF0101'; // rood
  56. } elseif (2 <= $color && $color < 5.5) {
  57. $kleur = '#F7D358'; // oranje
  58. } elseif (5.5 <= $color && $color < 8) {
  59. $kleur = '#31B404'; // geel
  60. } elseif (8 <= $color && $color < 10) {
  61. $kleur = '#31B404'; // groen
  62. } elseif ($color == 10) {
  63. $kleur = '#31B404'; // groen
  64. } else {
  65. $kleur = 'white'; // onbekende waarde wit
  66. }
  67. return $kleur;
  68. }
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75. $query = "SELECT *,
  76.  
  77. ROUND((((nr1+nr2+nr3+nr4)*18)/4)-8,1) AS nehar,
  78.  
  79.  
  80. ROUND((((f1+f2+f3+f4)*9)/4)+1,1) AS nehat2,
  81.  
  82. ROUND((((c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c12+e1+e2+e3+e4+e5+e6+e7+e8+e9+e10+e11+e12+fl1+fl2+fl3+fl4+fl5+fl6+fl7+fl8+fl9+fl10+fl11+fl12+fl13+fl14+fl15)*9)/39)+1,1) AS enhat2,
  83.  
  84.  
  85. ROUND((((((j1+j2+j3+j4+j5+j6+j7+j8+j9)*18)/9)-8)+((((p1+p2+p3+p4+p5+p6+ci1)*9)/7)+1))/2,1) AS cijfer,
  86.  
  87.  
  88.  
  89.  
  90.  
  91. FROM nehavo
  92. INNER JOIN leerlinglijst
  93. ON nehavo.leerlingnummer2=leerlinglijst.leer
  94. INNER JOIN enhavo
  95. ON enhavo.leerlingnummer2=leerlinglijst.leer
  96. INNER JOIN fahavo
  97. ON fahavo.leerlingnummer2=leerlinglijst.leer
  98. INNER JOIN duhavo
  99. ON duhavo.leerlingnummer2=leerlinglijst.leer
  100.  
  101.  
  102. ORDER BY klas ASC ";
  103.  
  104.  
  105. // de SQL-query die wordt uitgevoerd
  106. $resultaat = mysql_query($query, $db);
  107.  
  108. echo "<h2></h2><p>\n";
  109. echo "\n";
  110.  
  111. while( $row = mysql_fetch_assoc($resultaat) )
  112. {
  113.  
  114. ?>
  115.  
  116. <center>
  117. <table border=0 width="500" height="50" cellspacing=5 cellpadding=5 bgcolor=white >
  118.  
  119.  
  120. <tr>
  121. <tr><td colspan=3><b><?php echo $row['naam']; ?></b></td><td colspan=1><?php echo $row['klas']; ?></td></tr>
  122. </tr>
  123.  
  124. <tr>
  125. <th>Ne R</th><th>En R</th><th>Fa R</th><th>Du R</th>
  126. </tr>
  127. <tr>
  128. <td style="background-color: <?php echo bepaalKleurInterval($row['nehar']); ?>; text-align: center;" width="500" height="50"><?php echo $row['nehar']; ?></td>
  129. <td style="background-color: ; text-align: center;" width="500" height="50"></td>
  130. <td style="background-color: ; text-align: center;" width="500" height="50"></td>
  131. <td style="background-color: ; text-align: center;" width="500" height="50"></td>
  132. </tr>
  133. <tr>
  134.  
  135. <th>Ne T2</th><th>En T2</th><th>Fa T2</th><th>Du T2</th>
  136. </tr>
  137. <tr>
  138.  
  139. <td style="background-color: <?php echo bepaalKleurInterval($row['enhat2']); ?>; text-align: center;" width="500" height="50"><?php echo $row['enhat2']; ?></td>
  140.  
  141. </tr>
  142. <tr>
  143.  
  144. <th>gem.</th>
  145. </tr>
  146. <tr>
  147.  
  148. <td style="background-color: <?php echo bepaalKleurInterval($row['cijfer']); ?>; text-align: center;" width="500" height="50"><?php echo $row['cijfer']; ?></td>
  149.  
  150. </tr>
  151.  
  152.  
  153.  
  154. </table>
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164. <br><br><br>
  165.  
  166.  
  167. <?
  168. }
  169. }
  170. }
  171. }
  172. ?>

12 antwoorden

Gesponsorde links
Offline Thomas - 29/09/2014 17:04 (laatste wijziging 29/09/2014 17:07)
Avatar van Thomas Moderator Bij "nehar" en "cijfer" kan ik mij voorstellen dat hier een negatieve waarde uitrolt, maar als de kolommen in de andere sommen ten minste 0 zijn is het eindresultaat ook positief?

Hoe zijn deze getallen opgeslagen in je database (wat is het type van deze kolommen) en waar gaat het mis waar het goed zou moeten gaan of andersom, met andere woorden, heb je een voorbeeld van een geval waarbij het onterecht goed/verkeerd gaat?

EDIT: ik zie zo gauw in de kleurfunctie niets vreemds, druk je de eind- of tussenresultaten ook af? En wat gaat er precies mis? In welke kleur worden zaken afgedrukt? Want dat geeft dus weer aan in welk interval een eindresultaat valt...
Offline Frank56 - 29/09/2014 18:20
Avatar van Frank56 Nieuw lid Bij nehar gaat het inderdaad fout, omdat 75% goede antwoorden hier een 5,5 oplevert.

Bij nehat2 is het geen probleem, omdat hier 50% goede antwoorden een 5.5 oplevert.

De kleur waarin afgedrukt wordt, is rood. Eigenlijk moet ik dat nog veranderen, zodat punten onder de nul wit worden.

Alles gaat precies zoals het geprogrammeerd is, maar ik wil het veranderen, zodat alle cijfers onder de nul als een 1 geprint worden, en ik weet niet hoe dat moet.

  1. -- phpMyAdmin SQL Dump
  2. -- version 3.5.7
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Machine: localhost
  6. -- Genereertijd: 29 sep 2014 om 18:13
  7. -- Serverversie: 5.3.5-MariaDB-ga-mariadb113
  8. -- PHP-versie: 5.3.29
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11. SET time_zone = "+00:00";
  12.  
  13.  
  14. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  15. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  16. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  17. /*!40101 SET NAMES utf8 */;
  18.  
  19. --
  20. -- Databank: `nw2_nl_1`
  21. --
  22.  
  23. -- --------------------------------------------------------
  24.  
  25. --
  26. -- Tabelstructuur voor tabel `nehavo2`
  27. --
  28.  
  29. CREATE TABLE IF NOT EXISTS `nehavo` (
  30. `leerlingnummer2` text CHARACTER SET utf8 NOT NULL,
  31. `name` text CHARACTER SET utf8 NOT NULL,
  32. `doc` text CHARACTER SET utf8 NOT NULL,
  33. `nr1` text CHARACTER SET utf8 NOT NULL,
  34. `nr2` text CHARACTER SET utf8 NOT NULL,
  35. `nr3` text CHARACTER SET utf8 NOT NULL,
  36. `nr4` text CHARACTER SET utf8 NOT NULL,
  37. `f1` text CHARACTER SET utf8 NOT NULL,
  38. `f2` text CHARACTER SET utf8 NOT NULL,
  39. `f3` text CHARACTER SET utf8 NOT NULL,
  40. `f4` text CHARACTER SET utf8 NOT NULL
  41. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  42.  
  43. --
  44. -- Gegevens worden uitgevoerd voor tabel `nehavo2`
  45. --
  46.  
  47. INSERT INTO `nehavo` (`leerlingnummer2`, `name`, `doc`, `nr1`, `nr2`, `nr3`, `nr4`, `f1`, `f2`, `f3`, `f4`) VALUES
  48. ('01', 'jan', 'kees', '0', '0', '0', '1', '0', '0', '0', '0'),
  49. ('08', 'marie', 'gert', '0', '0', '1', '0', '1', '0', '0', '0'),
  50. ('04', 'Arie', 'fred', '0', '1', '1', '1', '0', '1', '0', '1');
  51.  
  52. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  53. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  54. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Offline Thomas - 29/09/2014 19:44
Avatar van Thomas Moderator Waarom sla je getallen op als tekst?

Anyway. Je geeft zelf al aan wat je wilt: alle cijfers onder de 0 als een 1 afdrukken... Tijd voor nog een functie?

  1. <?php
  2. function formatteerGetal($invoer) {
  3. if ($getal < 0) {
  4. return 1;
  5. } else {
  6. return $invoer;
  7. }
  8. }
  9. ?>

En deze functie pas je dan toe op de getallen die je afdrukt, op dezelfde manier als het toekennen van een kleur...
Offline Frank56 - 29/09/2014 21:13
Avatar van Frank56 Nieuw lid Hartelijk dank hiervoor.

De getallen worden door andere codes in de database geplaatst en ik heb steeds charset=UTF-8 gebruikt.

Daarom heb ik voor de gegevens in de database utf8_general_ci voor de kolommen gekozen.

Het werk wordt door 280 gebruikers in korte tijd in de database geplaatst, dus ik wil dat het verwerken van de gegevens zo min mogelijk problemen oplevert.

Is dat dan geen goede oplossing?
Offline Thomas - 30/09/2014 00:24 (laatste wijziging 30/09/2014 10:01)
Avatar van Thomas Moderator Er zijn een aantal aanverwante zaken waarvan ik denk dat het belangrijk is dat je deze weet te onderscheiden:

Een character set of character encoding (zoals UTF-8, waaraan in MySQL (onder andere) via utf8 wordt gerefereerd) is een verzameling symbolen die op een bepaalde manier (denk aan een reeks van nullen en enen, bits en bytes) wordt opgeslagen.

set of encoding = wijze van opslag in het geheugen

Een character collation is een verzameling van regels voor het vergelijken en sorteren van karakter(reeksen) in een character set. Een voorbeeld van een collation is utf8_general_ci.

collation = wijze van sorteren / vergelijken

Ongeacht de encoding/collation volgen tekst en numerieke waarden een verschillende sortering. Tekst volgt een alfabetische (of lexicografische) sortering. Numerieke waarden volgen een numerieke sortering. Je keuze om numerieke waarden op te slaan als tekst kan gevolgen hebben voor de sortering.

Als je wiskundige formules loslaat op tekst-die-numerieke-waarden-bevat dan zal de omzetting tekst > numerieke waarde mogelijk/waarschijnlijk/misschien/hopelijk automatisch plaatsvinden.

Dit neemt echter niet weg dat je zou moeten nadenken over hoe je je gegevens opslaat in je database. Als dit niet uit zou maken dan zouden de verschillende kolomtypen die MySQL rijk is niet veel bestaansrecht hebben... maar dat is dus niet het geval. MySQL ondersteunt verschillende kolomtypen om een reden.

Als je cijfers opslaat, zou je er bijvoorbeeld voor kunnen kiezen om deze als breuken ("floats" of "floating integers") op te slaan. Maar als je bijvoorbeeld weet dat de maximale precisie van een cijfer altijd maximaal één cijfer achter de komma is, zou je kunnen overwegen om een cijfer op te slaan als een getal tussen de 0 en 100 (waarbij je dus, als je hiermee gaat rekenen, het eindresultaat door 10 deelt voor een (gemiddeld) eindcijfer).

Het ontwerp van je database, en de manier waarop je je data inhoudelijk vormgeeft, vormt het fundament voor de rest van je applicatie(s) dus deze zou met grote zorg samengesteld moeten worden. Naarmate je applicatie en/of je dataset groeit wordt dit steeds belangrijker.

Hoe je je data opslaat wordt voor een groot deel bepaald door wat je met deze data wilt doen (hoe je de data dus weer op een efficiënte manier uit je database kunt trekken, ten einde een zeker doel te bereiken, bijvoorbeeld voor het samenstellen van rapportages ofzo).

Als je je informatie op een onhandige manier opslaat, wordt het op een zeker moment waarschijnlijk onhandig zoniet onmogelijk om hier nog makkelijk mee te werken, of zoals een oud collega van mij plachtte te zeggen: shit in, shit out.

Kijk, de keuze is aan jou. Jouw opzet zal tot op zekere hoogte wel werken, en misschien is dit voor wat je wilt doen goed genoeg. Maar dat wil niet zeggen dat je niet hoeft na te denken hoe iets anders of mogelijk beter kan.
Offline Frank56 - 04/10/2014 17:00
Avatar van Frank56 Nieuw lid Hartelijk dank voor de uitvoerige uitleg. Ik ga het uitproberen.

Ik kan de function formatteerGetal($invoer) in de volgende code niet werkend krijgen. Ligt dat aan het feit dat de getallen als tekst opgeslagen zijn of heb ik een programmeerfout gemaakt?

Het liefst wil ik de functies bepaalKleurInterval en fromatteerGetal combineren, maar dat lijkt op dit moment wel een brug te ver.


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  6. <title></title>
  7.  
  8. <link rel= "stylesheet" href="menu_style.css" type="text/css" />
  9. <link href="opmaak3.css" rel="stylesheet" type="text/css"/>
  10.  
  11. </head>
  12.  
  13. <?php
  14.  
  15. include '../navigatie/nav.inc';
  16. include '../navigatie/nav60.inc';
  17.  
  18.  
  19.  
  20. // We gaan sessies gebruiken
  21.  
  22. // Gebruikersnaam en wachtwoord instellen
  23. $sGebruikerControle = '';
  24. $sWachtwoordControle = '';
  25.  
  26. // Controle of het formulier verzonden is
  27. if($_SERVER['REQUEST_METHOD'] == 'POST')
  28. {
  29. // Controle of benodigde velden wel ingevuld zijn
  30. if(isset($_POST['naam'], $_POST['ww']))
  31. {
  32. // Overbodige spaties verwijderen als er TRIM bij staat.
  33. $sGebruiker = $_POST['naam'];
  34. $sWachtwoord = $_POST['ww'];
  35.  
  36. // Gebruikersnaam en wachtwoord controleren
  37. if($sGebruiker == $sGebruikerControle && $sWachtwoord == $sWachtwoordControle)
  38. {
  39. // Juiste gebruikersnaam en wachtwoord: inloggen!
  40. $_SESSION['logged_in'] = true;
  41. $_SESSION['gebruiker'] = $sGebruiker;
  42.  
  43. // Doorsturen en melding geven
  44.  
  45. include ("db_connect.inc2.php");?>
  46.  
  47.  
  48. <p><br><br><br>
  49. <h2>kaarten </h2>
  50.  
  51. <?php
  52.  
  53. function bepaalKleurInterval($color) {
  54. if (-10 <= $color && $color < 2) {
  55. $kleur = '#DF0101'; // rood
  56. } elseif (2 <= $color && $color < 5.5) {
  57. $kleur = '#F7D358'; // oranje
  58. } elseif (5.5 <= $color && $color < 8) {
  59. $kleur = '#31B404'; // geel
  60. } elseif (8 <= $color && $color < 10) {
  61. $kleur = '#31B404'; // groen
  62. } elseif ($color == 10) {
  63. $kleur = '#31B404'; // groen
  64. } else {
  65. $kleur = 'white'; // onbekende waarde wit
  66. }
  67. return $kleur;
  68. }
  69.  
  70. function formatteerGetal($invoer) {
  71. if ($getal < 0) {
  72. return 1;
  73. } else {
  74. return $invoer;
  75. }
  76. }
  77.  
  78.  
  79.  
  80.  
  81.  
  82. $query = "SELECT *,
  83.  
  84. ROUND((((r1+r2+r3+r4)*18)/4)-8,1) AS nehar,
  85.  
  86. ROUND((((w1+w2+w3+w4+o1+o2+o3+o4+i1+i2+i3+i4+t1+tl2+t3+t4+r1+r2+r3+r4)*18)/20)-8,1) AS nehat1,
  87.  
  88.  
  89. ROUND((((l1+l2+l3+l4+l5+l6+l7+l8+f1+f2+f3+f4+f5+f6+f7+f8+f9+f10+k1+k2+k3+k4+k5+k6+k7+k8)*18)/26)-8,1) AS enhat1,
  90.  
  91. ROUND((((j1+j2+j3+j4+j5+j6+j7+j8+j9)*18)/9)-8,1) AS fahat1,
  92.  
  93. ROUND((((ww1+ww2+ww3+ww4+ww5+ww6+ww7+n1+n2+n3+n4+n5+n6+w1+w2+w3+w4+w5+w6+v1+v2+t1+t2+t3+t4)*18)/25)-8,1) AS duhat1,
  94.  
  95. ROUND((((fo1+fo2+fo3+fo4)*9)/4)+1,1) AS nehat2,
  96.  
  97. ROUND((((c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c12+e1+e2+e3+e4+e5+e6+e7+e8+e9+e10+e11+e12+fo1+fo2+fo3+fo4+fo5+fo6+fo7+fo8+fo9+fo10+fo11+fo12+fo13+fo14+fo15)*9)/39)+1,1) AS enhat2,
  98.  
  99. ROUND((((p1+p2+p3+p4+p5+p6+c1)*9)/7)+1,1) AS fahat2,
  100.  
  101. ROUND((((p1+p2+p3+p4+w7+w8)*9)/6)+1,1) AS duhat2,
  102.  
  103. ROUND((((t1+t2+t3)*9)/3)+1,1) AS nehai,
  104.  
  105.  
  106.  
  107. ROUND((((((r1+r2+r3+r4)*18)/4)-8)+((((w1+w2+w3+w4+o1+o2+o3+o4+i1+i2+i3+i4+t1+t2+t3+t4+r1+r2+r3+r4)*18)/20)-8)+(((f1+f2+f3+f4)*9/4)+1)+((((t1+t2+t3)*9)/3)+1))/4,1) AS cijferne,
  108.  
  109.  
  110. ROUND((((((l1+l2+l3+l4+l5+l6+l7+l8+f1+f2+f3+f4+f5+f6+f7+f8+f9+f10+k1+k2+k3+k4+k5+k6+k7+k8)*18)/26)-8)+((((c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c2+e1+e2+e3+e4+e5+e6+e7+e8+e9+e10+e11+e12+fo1+fo2+fo3+fo4+fo5+fo6+fo7+fo8+fo9+fo10+fo11+fo12+fo13+fo14+fo15)*9)/39)+1))/2,1) AS cijferen,
  111.  
  112.  
  113. ROUND((((((j1+j2+j3+j4+j5+j6+j7+j8+j9)*18)/9)-8)+((((p1+p2+p3+p4+p5+p6+c1)*9)/7)+1))/2,1) AS cijferfa,
  114.  
  115.  
  116.  
  117.  
  118. ROUND((((((ww1+ww2+ww3+ww4+ww5+ww6+ww7+n1+n2+n3+n4+n5+n6+w1+w2+w3+w4+w5+w6+v1+v2+t1+t2+t3+t4)*18)/25)-8)+((((p1+p2+p3+p4+w7+w8)*9)/6)+1))/2,1) AS cijferdu,
  119.  
  120. r1+r2+r3+r4+w1+w2+w3+w4+o1+o2+o3+o4+i1+i2+i3+i4+t1+t2+t3+t4+r1+r2+r3+r4+f1+f2+f3+f4+t1+t2+t3 AS totaal
  121.  
  122. FROM nehavo
  123. INNER JOIN leerlinglijst
  124. ON nehavo.leerlingnummer2=leerlinglijst.leer
  125. INNER JOIN enhavo
  126. ON enhavo.leerlingnummer2=leerlinglijst.leer
  127. INNER JOIN fahavo
  128. ON fahavo.leerlingnummer2=leerlinglijst.leer
  129. INNER JOIN duhavo
  130. ON duhavo.leerlingnummer2=leerlinglijst.leer
  131.  
  132.  
  133. ORDER BY klas ASC ";
  134.  
  135.  
  136. // de SQL-query die wordt uitgevoerd
  137. $resultaat = mysql_query($query, $db);
  138.  
  139. echo "<h2></h2><p>\n";
  140. echo "\n";
  141.  
  142. while( $row = mysql_fetch_assoc($resultaat) )
  143. {
  144.  
  145. ?>
  146.  
  147. <center>
  148. <table border=0 width="500" height="50" cellspacing=5 cellpadding=5 bgcolor=white >
  149.  
  150.  
  151. <tr>
  152. <tr><td colspan=3><b><?php echo $row['naam']; ?></b></td><td colspan=1><?php echo $row['klas']; ?></td></tr>
  153. </tr>
  154.  
  155. <tr>
  156. <th>Ne R</th><th>En R</th><th>Fa R</th><th>Du R</th>
  157. </tr>
  158. <tr>
  159. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['nehar']); ?></td>
  160. <td style="background-color: ; text-align: center;" width="500" height="50"></td>
  161. <td style="background-color: ; text-align: center;" width="500" height="50"></td>
  162. <td style="background-color: ; text-align: center;" width="500" height="50"></td>
  163. </tr>
  164. <tr>
  165. <th>Ne T1</th><th>En T1</th><th>Fa T1</th><th>Du T1</th>
  166. </tr>
  167. <tr>
  168. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['nehat1']); ?></td>
  169. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['enhat1']); ?></td>
  170. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['fahat1']); ?></td>
  171. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['duhat1']); ?></td>
  172. </tr>
  173. <tr>
  174. <th>Ne T2</th><th>En T2</th><th>Fa T2</th><th>Du T2</th>
  175. </tr>
  176. <tr>
  177. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['nehat2']); ?></td>
  178. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['enhat2']); ?></td>
  179. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['fahat2']); ?></td>
  180. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['duhat1']); ?></td>
  181. </tr>
  182. <tr>
  183. <th>Ne I</th><th>En I</th><th>Fa I</th><th>Du I</th>
  184. </tr>
  185. <tr>
  186. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['nehai']); ?></td>
  187. <td style="background-color: ; text-align: center;" width="500" height="50"></td>
  188. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['fahai']); ?></td>
  189. <td style="background-color: ; text-align: center;" width="500" height="50"></td>
  190. </tr>
  191.  
  192.  
  193. <tr>
  194. <th>Ne gem.</th><th>En gem.</th><th>Fa gem.</th><th>Du gem.</th>
  195. </tr>
  196. <tr>
  197. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['cijferne']); ?></td>
  198. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['cijferen']); ?></td>
  199. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['cijferfa']); ?></td>
  200.  
  201. <td style=" text-align: center;" width="500" height="50"><?php echo formatteerGetal($row['cijferdu']); ?></td>
  202. </tr>
  203.  
  204.  
  205.  
  206. </table>
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216. <br><br><br>
  217.  
  218.  
  219. <?
  220. }
  221. }
  222. }
  223. }
  224. ?>
Offline Thomas - 04/10/2014 17:10 (laatste wijziging 04/10/2014 17:12)
Avatar van Thomas Moderator Ugh, die functie moest natuurlijk zijn:

  1. <?php
  2. function formatteerGetal($invoer) {
  3. if ($invoer < 0) {
  4. return 1;
  5. } else {
  6. return $invoer;
  7. }
  8. }
  9. ?>


($invoer in plaats van $getal)

Zucht .

EDIT: Je kunt beide functies prima tegelijkertijd toepassen? Ze dienen echter wel een verschillend doel: de ene functie is om een achtergrondkleur in te stellen, de andere om het getal te formatteren. Je kunt ze dus niet "combineren" tot één ding, lijkt me.
Offline Frank56 - 04/10/2014 19:46
Avatar van Frank56 Nieuw lid Ja, nu werkt het uitstekend.

Alleen als ik de getallen met deze functie optel, wordt bij een vriespuntcijfer niet de 1 meegerekend, maar het echte getal.

  1. <?php echo (formatteerGetal($row['fahat1'])+ formatteerGetal($row['fahat2']) + formatteerGetal($row['fahai']))/3; ?>


Is het ook mogelijk om het vriespuntcijfer wel als 1 mee te rekenen?
Offline Thomas - 05/10/2014 00:31
Avatar van Thomas Moderator En als je de functie op het resultaat toepast?

Dus niet functie(A) + functie(B) + functie(C) maar functie(A+B+C) dus.

Wat jij doet is vergelijkbaar met "tussentijds afronden" .
Offline Frank56 - 08/10/2014 22:29
Avatar van Frank56 Nieuw lid Het is helemaal gelukt!

Nu wil ik de cel

  1. <?php echo ROUND((formatteerGetal($row['nehar']) + ($row['nehat1'])+ ($row['nehat2']) + ($row['nehai']))/4,1) ; ?>


de kleur geven van

  1. bepaalKleurInterval


waarbij

  1. ($row['cijferne'])


komt te vervallen, en wordt vervangen door

  1. (formatteerGetal($row['nehar']) + ($row['nehat1'])+ ($row['nehat2']) + ($row['nehai']))/4,1)


Kan dat? Mij lukt het niet. Of ik krijg de kleur of ik krijg het gemiddelde.

Hieronder staan de codes die nu 'gedwongen' in twee verschillende documenten staan.

  1. <td style="background-color: <?php echo bepaalKleurInterval($row['cijferne']); ?>; text-align: center;" width="500" height="50"><?php echo $row['cijferne']; ?></td>[code=php]


en

  1. <td style=" text-align: center;" width="500" height="50"><?php echo ROUND((formatteerGetal($row['nehar']) + ($row['nehat1'])+ ($row['nehat2']) + ($row['nehai']))/4,1) ; ?></td>

Offline Thomas - 08/10/2014 22:52
Avatar van Thomas Moderator Uhm, je wilt hetzelfde (berekende getal) gebruiken zowel voor het afdrukken ervan, en voor het bepalen van een kleur (die moet dan dus wel in een geldig interval vallen)?

Dat is toch niet zo lastig? Introduceer, om een en ander leesbaar te houden, een hulpvariabele met een toepasselijke naam, bijvoorbeeld $eindCijfer ofzo?

Voer eerst ergens (op een toepasselijke plaats uiteraard) je berekening uit:
  1. <?php
  2. // ...
  3. $eindCijfer = round((formatteerGetal($row['nehar']) + ($row['nehat1'])+ ($row['nehat2']) + ($row['nehai']))/4,1);
  4. // ...


Ik weet trouwens niet of deze berekening klopt? Je voert formatteerGetal alleen uit op $row['nehar']? Let goed op de juiste plaatsing van (haken).

En gebruik deze uitgerekende waarde vervolgens voor het bepalen van de achtergroundkleur en het afdrukken van het eindcijfer:
  1. <?php
  2. // ...
  3. ?><td style="background-color: <?php echo bepaalKleurInterval($eindCijfer) ?>;"><?php echo $eindCijfer ?></td><?php
  4. // ...
  5. ?>


Is dit wat je wilt?
Offline Frank56 - 21/10/2014 08:34
Avatar van Frank56 Nieuw lid Ja,dit is wat ik wil.

Bedankt ook voor de tip dat de berekening niet klopt. Ik heb hem aangepast.


Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.328s