login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Handige scripts > Werkoverzicht

Werkoverzicht

Auteur: killah09 - 07 juli 2007 - 18:49 - Gekeurd door: Stijn - Hits: 3306 - Aantal punten: 4.00 (3 stemmen)





Dit script heb ik gemaakt omdat iemand om zoiets vroeg, wanneer ik het vrij snel klaar had dacht ik dat er andere ook mee geholpen konden worden. Daarom heb ik het nog een gecontroleerd en erop gezet.

Wat doet het script?
In dit script kan je dagen dat je gewerkt hebt toevoegen van begin tijd tot eindtijd. Het rekend uit wat er is vediend die dag en slaat het op in een mysql tabel. Ook rekend het script uit hoeveel je nog betaald moet krijgen en hoeveel je in totaal hebt verdiend.

Hoezo voor beginners?
Omdat het voor beginners interessant is om te weten hoe je updaten, toevoegen en verwijderen nou precies doet. Ook zit er wat bij over het rekenen in mysql.

Commentaar is altijd welkom, daar leer je tenslotte van. Ga niet onnodig zitten afkraken want daar leer je juist niet van (=

Te bekijken en te downloaden op:
http://www.niekweb.nl/werkoverzicht/

Code:
/////////////////
MySql Tabel///
/////////////////

  1. CREATE TABLE `werkoverzicht` (
  2. `id` int(11) NOT NULL auto_increment,
  3. `dag` varchar(20) NOT NULL default '',
  4. `datum_dag` int(11) NOT NULL default '0',
  5. `datum_maand` varchar(20) NOT NULL default '',
  6. `begintijd` int(11) NOT NULL default '0',
  7. `eindtijd` int(11) NOT NULL default '0',
  8. `betaald` enum('ja','nee') NOT NULL default 'ja',
  9. `aantaluur` int(11) NOT NULL default '0',
  10. `verdiend` int(11) NOT NULL default '0',
  11. PRIMARY KEY (`id`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


//////////////////
config.inc.php//
/////////////////
  1. <?php
  2. // Hoeveel per uur? : hier 5
  3. $europeruur="5";
  4.  
  5.  
  6. // Host is MEESTAL localhost
  7. $host ="######";
  8. // De gebruikersnaam waarmee je in je database komt
  9. $gebruikersnaam="######";
  10. // Je wachtwoord waarmee je in je database komt
  11. $wachtwoord="######";
  12. // De database naam, waar je tabel werkoverzicht in staat.
  13. $databasenaam="######";
  14.  
  15. mysql_connect($host, $gebruikersnaam, $wachtwoord);
  16. mysql_select_db($databasenaam);
  17.  
  18.  
  19. ?>




///////////////////
formulier.php///
//////////////////

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Werkuren schema</title>
  6. </head>
  7. <body>
  8. <?php
  9. // Om het formulier niet 2x neer te zetten heb ik het volgende verwerkt
  10. // Hij pakt de get waarde die door overzicht.php word meegegeven, daarna controleert of het bestaat zoja: hij word gepost naar de juiste plaats
  11.  
  12.  
  13. // Kijken of pag de waarde "update heeft"
  14. if($_GET["pag"] == update){
  15. // Zo ja: Zet paglink op update oftewel de POST
  16. $paglink = $_GET["pag"];
  17.  
  18. // Omdat bij het updaten al gegevens zijn, halen we die uit den database
  19. // Zodat we ze later netjes vanboven staan.
  20. include("config.inc.php");
  21.  
  22. $query = "SELECT * FROM werkoverzicht WHERE id=".$_GET["id"];
  23. $resultaat = mysql_query($query);
  24. while($record = mysql_fetch_object($resultaat))
  25. {
  26. $id = $record->id;
  27. $dag = $record->dag;
  28. $datum_dag = $record->datum_dag;
  29. $datum_maand = $record->datum_maand;
  30. $begintijd = $record->begintijd;
  31. $eindtijd = $record->eindtijd;
  32. $aantaluur = $record->aantaluur;
  33. $verdiend = $record->verdiend;
  34. $betaald = $record->betaald;
  35. }
  36.  
  37.  
  38. }else{
  39. // Zo nee: Zet hem dan automatisch op voegtoe
  40. $paglink = "voegtoe";
  41.  
  42. }
  43.  
  44. // Wat hier onder staat spreekt voor zich denk ik.
  45. // de echo's die in de value's staan verwijzen bij het updaten naar de waarde die al eerder is ingevoerd, en bij het toevoegen zijn ze leeg.
  46.  
  47.  
  48. ?>
  49.  
  50. <h1>Formulier</h1>
  51. <hr />
  52. <form name="form1" action="verwerk.php?pag=<?php echo($paglink); ?>" method="post">
  53. <b>Dag: </b>
  54. <select name="dag">
  55. <option value="<?php echo($dag); ?>"><?php echo($dag); ?></option>
  56. <option value="Maandag">Maandag</option>
  57. <option value="Dinsdag">Dinsdag</option>
  58. <option value="Woensdag">Woensdag</option>
  59. <option value="Donderdag">Donderdag</option>
  60. <option value="Vrijdag">Vrijdag</option>
  61. <option value="Zaterdag">Zaterdag</option>
  62. <option value="Zondag">Zondag</option>
  63. </select>
  64. <br /><br />
  65. <b>Datum: </b>
  66. <select name="datum_dag">
  67. <option value="<?php echo($datum_dag); ?>"><?php echo($datum_dag); ?></option>
  68. <option value="1">1</option>
  69. <option value="2">2</option>
  70. <option value="3">3</option>
  71. <option value="4">4</option>
  72. <option value="5">5</option>
  73. <option value="6">6</option>
  74. <option value="7">7</option>
  75. <option value="8">8</option>
  76. <option value="9">9</option>
  77. <option value="10">10</option>
  78. <option value="11">11</option>
  79. <option value="12">12</option>
  80. <option value="13">13</option>
  81. <option value="14">14</option>
  82. <option value="15">15</option>
  83. <option value="16">16</option>
  84. <option value="17">17</option>
  85. <option value="18">18</option>
  86. <option value="19">19</option>
  87. <option value="20">20</option>
  88. <option value="21">21</option>
  89. <option value="22">22</option>
  90. <option value="23">23</option>
  91. <option value="24">24</option>
  92. <option value="25">25</option>
  93. <option value="26">26</option>
  94. <option value="27">27</option>
  95. <option value="28">28</option>
  96. <option value="29">29</option>
  97. <option value="30">30</option>
  98. <option value="31">31</option>
  99. </select>
  100. <br /><br />
  101. <b>Maand: </b>
  102. <select name="datum_maand">
  103. <option value="<?php echo($datum_maand); ?>"><?php echo($datum_maand); ?></option>
  104. <option value="Januari">Januari</option>
  105. <option value="Februari">Februari</option>
  106. <option value="Maart">Maart</option>
  107. <option value="April">April</option>
  108. <option value="Mei">Mei</option>
  109. <option value="Juni">Juni</option>
  110. <option value="Juli">Juli</option>
  111. <option value="Augustus">Augustus</option>
  112. <option value="September">September</option>
  113. <option value="Oktober">Oktober</option>
  114. <option value="November">November</option>
  115. <option value="December">December</option>
  116. </select>
  117. <br /><br />
  118. <b>Gewerkt van </b>
  119. <select name="begintijd">
  120. <option value="<?php echo($begintijd); ?>"><?php echo($begintijd); ?></option>
  121. <option value="01">1:00</option>
  122. <option value="02">2:00</option>
  123. <option value="03">3:00</option>
  124. <option value="04">4:00</option>
  125. <option value="05">5:00</option>
  126. <option value="06">6:00</option>
  127. <option value="07">7:00</option>
  128. <option value="08">8:00</option>
  129. <option value="09">9:00</option>
  130. <option value="10">0:00</option>
  131. <option value="11">11:00</option>
  132. <option value="12">12:00</option>
  133. <option value="13">13:00</option>
  134. <option value="14">14:00</option>
  135. <option value="15">15:00</option>
  136. <option value="16">16:00</option>
  137. <option value="17">17:00</option>
  138. <option value="18">18:00</option>
  139. <option value="19">19:00</option>
  140. <option value="20">20:00</option>
  141. <option value="21">21:00</option>
  142. <option value="22">22:00</option>
  143. <option value="23">23:00</option>
  144. <option value="24">24:00</option>
  145. </select>
  146. <b> tot </b>
  147. <select name="eindtijd">
  148. <option value="<?php echo($eindtijd); ?>"><?php echo($eindtijd); ?></option>
  149. <option value="01">1:00</option>
  150. <option value="02">2:00</option>
  151. <option value="03">3:00</option>
  152. <option value="04">4:00</option>
  153. <option value="05">5:00</option>
  154. <option value="06">6:00</option>
  155. <option value="07">7:00</option>
  156. <option value="08">8:00</option>
  157. <option value="09">9:00</option>
  158. <option value="10">10:00</option>
  159. <option value="11">11:00</option>
  160. <option value="12">12:00</option>
  161. <option value="13">13:00</option>
  162. <option value="14">14:00</option>
  163. <option value="15">15:00</option>
  164. <option value="16">16:00</option>
  165. <option value="17">17:00</option>
  166. <option value="18">18:00</option>
  167. <option value="19">19:00</option>
  168. <option value="20">20:00</option>
  169. <option value="21">21:00</option>
  170. <option value="22">22:00</option>
  171. <option value="23">23:00</option>
  172. <option value="24">24:00</option>
  173. </select>
  174. <br /><br />
  175. <b>Uitbetaald: </b>
  176. <select name="betaald">
  177. <option value="<?php echo($betaald); ?>"><?php echo($betaald); ?></option>
  178. <option value="Nee">Nee</option>
  179. <option value="Ja">Ja</option>
  180. </select>
  181. <br /><br />
  182. <input type="hidden" value="<?php echo($id); ?>" name="id" />
  183. <input type="submit" value="Plaats" name="enter"/>
  184. </form>
  185.  
  186. </body>
  187. </html>



///////////////////////
overzicht.php///////
//////////////////////

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Overzicht</title>
  6. </head>
  7. <body>
  8. <?php
  9. // connecten met database
  10. include("config.inc.php");
  11.  
  12. // Selecteer en tel de kolom verdiend met elkaar op maar alleen als uit diezelfde rij de kolom betaald ja is.
  13. $select_betaald= "SELECT SUM(verdiend) AS verdiend FROM werkoverzicht WHERE betaald = 'ja' ";
  14. $query_betaald = mysql_query($select_betaald);
  15. $result_betaald = mysql_fetch_assoc($query_betaald);
  16.  
  17. // Selecteer en tel de kolom verdiend met elkaar op maar alleen als uit diezelfde rij de kolom betaald nee is.
  18. $select_nietbetaald= "SELECT SUM(verdiend) AS verdiend FROM werkoverzicht WHERE betaald = 'nee' ";
  19. $query_nietbetaald = mysql_query($select_nietbetaald);
  20. $result_nietbetaald = mysql_fetch_assoc($query_nietbetaald);
  21.  
  22.  
  23. //////////////////////////
  24. //// Let op: Omdat er mysql_fetch_assoc is gebruikt, word het resultaat alleen maar met een array uitgespuugd.
  25. /////////////////////////
  26.  
  27.  
  28.  
  29. // Wanneer je wel betaald en niet betaald met elkaar optelt krijg je het totaal :) goed he?
  30. $result_totaal = $result_betaald["verdiend"]+$result_nietbetaald["verdiend"];
  31.  
  32. // Nou dan laten we de resultaten even allemaal zien op de pagina, ochjah dump het maar in een echo!
  33. <h1>Overzicht</h1>
  34. <hr>
  35. Al uitbetaald: <b>€'. $result_betaald["verdiend"].'</b> <br>
  36. Nog niet uitbetaald: <b>€'. $result_nietbetaald["verdiend"].'</b> <br>
  37. Totaal verdiend: <b>€'. $result_totaal.'</b> <br>
  38. <hr>
  39. <b>Toevoegen: <a href="formulier.php">klik</a>.</b>
  40. <hr>
  41. <br><br>
  42. <table border="0" bgcolor="blue" cellpadding="1px" cellspacing="1px" width="800px">
  43. <tr>
  44. <td bgcolor="white"><b>Dag</b></td>
  45. <td bgcolor="white"><b>Datum</b></td>
  46. <td bgcolor="white"><b>Begintijd</b></td>
  47. <td bgcolor="white"><b>Eindtijd</b></td>
  48. <td bgcolor="white"><b>Aantal Uur</b></td>
  49. <td bgcolor="white"><b>Verdiend</b></td>
  50. <td bgcolor="white"><b>Uitbetaald</b></td>
  51. <td bgcolor="white"><b>Verander</b></td>
  52. <td bgcolor="white"><b>Verwijder</b></td>
  53. </tr>';
  54. // Hierboven is al de eerste rij van een tabel gemaakt voor het op de pagina te laten zien.
  55.  
  56. // Hieronder komt de rest van de tabel, Maar dan moeten we eerst alles uit de database halen.
  57. $query2 = "SELECT * FROM werkoverzicht";
  58. $resultaat = mysql_query($query2);
  59. // We zetten het in een while dan haalt hij herhaaldelijk 1 voor 1 rij uit zijn database totdat alles eruit is gelezen.
  60. while($record = mysql_fetch_object($resultaat))
  61. {
  62. <tr>
  63. <td bgcolor="white">'.$record->dag.'</td>
  64. <td bgcolor="white">'.$record->datum_dag.' '.$record->datum_maand.'</td>
  65. <td bgcolor="white">'.$record->begintijd.':00</td>
  66. <td bgcolor="white">'.$record->eindtijd.':00</td>
  67. <td bgcolor="white">'.$record->aantaluur.'</td>
  68. <td bgcolor="white">'.$record->verdiend.'</td>
  69. <td bgcolor="white">'.$record->betaald.'</td>
  70. <td bgcolor="white"><a href="formulier.php?pag=update&id='.$record->id.'"> Klik </a></td>
  71. <td bgcolor="white"><a href="verwerk.php?pag=delete&id='.$record->id.'"> Weg! </a></td>
  72. </tr>
  73. ';
  74. }
  75. // En nog even de tabel op de pagina zelf sluiten
  76. echo'</table>';
  77.  
  78. ?>
  79. </body>
  80. </html>
  81.  
  82.  
  83. //////////////////
  84. verwerk.php///
  85. /////////////////
  86.  
  87. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  88. <html xmlns="http://www.w3.org/1999/xhtml">
  89. <head>
  90. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  91. <title>Verwerk.php</title>
  92. </head>
  93.  
  94. <body>
  95. <?php
  96.  
  97. // Connecten met database
  98. include("config.inc.php");
  99.  
  100.  
  101. // Kijken of velden zijn ingevuld
  102. if(
  103.  
  104. // Noem het maar even checklist :)
  105. !empty($_POST["dag"]) &&
  106. !empty($_POST["datum_dag"]) &&
  107. !empty($_POST["datum_maand"]) &&
  108. !empty($_POST["begintijd"]) &&
  109. !empty($_POST["eindtijd"]) &&
  110. !empty($_POST["betaald"]) &&
  111. !empty($_POST["enter"]) ){
  112.  
  113.  
  114.  
  115. // Zet alle POST waardes in een variabele, is wat duidelijker vind ik persoonlijk.
  116. $dag = $_POST["dag"];
  117. $datum_dag = $_POST["datum_dag"];
  118. $datum_maand = $_POST["datum_maand"];
  119. $begintijd = $_POST["begintijd"];
  120. $eindtijd = $_POST["eindtijd"];
  121. $eindtijd2 = $_POST["eindtijd"];
  122. $betaald = $_POST["betaald"];
  123.  
  124.  
  125.  
  126. if($_GET["pag"] == voegtoe){
  127. // Hieronder komt alles te staan wanneer je een nieuwe werkdag wilt invullen ?pag=voegtoe
  128.  
  129.  
  130.  
  131. // Uitleg: //
  132. // In het formulier hebben de begintijd en de eindtijd een waarde meegekregen
  133. // Die waarde is gewoon het aantal uur van het tijdstip dus 24:00 heeft als waarde 24 en 01:00 als waarde 01
  134.  
  135.  
  136.  
  137. // Hier kijkt hij of het begingetal groter is dan het eindgetal
  138. if($begintijd >= $eindtijd)
  139.  
  140.  
  141. // +24 is dan logisch om erbij tedoen, omdat je nooit eerder klaar bent dan je moet beginnen!
  142. { $eindtijd2+=24; }
  143.  
  144. // We reken hier even uit hoeveel uur er gewerkt is
  145. $aantaluur = $eindtijd2 - $begintijd;
  146. // We reken uit hoeveel je verdiend hebt, per uur word hier 5 euro verdiend.
  147. $verdiend = $aantaluur*$europeruur;
  148.  
  149. // Nu hebben we alles uitgerekend tot zover en moeten alleen nog even in een database zetten
  150. // Nou dat doen we dus zo:
  151. $query="INSERT INTO werkoverzicht (dag, datum_dag, datum_maand, begintijd, eindtijd, betaald, aantaluur, verdiend) ";
  152. $query .= "VALUES ('";
  153. $query .= $dag ."', '";
  154. $query .= $datum_dag ."', '";
  155. $query .= $datum_maand ."', '" ;
  156. $query .= $begintijd ."', '" ;
  157. $query .= $eindtijd ."', '";
  158. $query .= $betaald ."', '";
  159. $query .= $aantaluur ."', '";
  160. $query .= $verdiend ."');" ;
  161.  
  162. //Query uivoeren en eventueel checken op fouten!
  163. mysql_query($query) or die(mysql_error());
  164.  
  165. // Ok, werkdag toegevoegd!
  166. // Even melding weergeven en/of redirecten .
  167. echo'<meta http-equiv="refresh" content="0;URL=overzicht.php" />';
  168.  
  169.  
  170.  
  171. // Sluiten van ?pag=voegtoe
  172. }
  173.  
  174.  
  175.  
  176. // Dit is een totaal ander deel van de pagina
  177. // We beginnen hier met het kijken of de GET waarde update is meegegeven.
  178. if($_GET["pag"] == update){
  179.  
  180.  
  181. // Zoja We beginnen met updaten!
  182. // Elke keer als je deze pagina bezoekt ze langs de checklist gaan kan je de meegegeven waardes direct updaten.
  183.  
  184. $res=mysql_query("UPDATE werkoverzicht SET
  185. dag = '" .$_POST["dag"] ."',
  186. datum_dag = '" .$_POST["datum_dag"] ."',
  187. datum_maand = '" .$_POST["datum_maand"] ."',
  188. begintijd = '" .$_POST["begintijd"] ."',
  189. eindtijd = '" .$_POST["eindtijd"] ."',
  190. betaald = '" .$_POST["betaald"] ."'
  191. WHERE id= ".$_POST["id"]." ORDER BY id DESC LIMIT 1 ")or die(mysql_error());
  192. // hier ook weer mysql_error voor eventuele fouten op te sporen.
  193.  
  194.  
  195. // Ok, werkdag upgedate!
  196. // Even melding weergeven en/of redirecten.
  197. echo'<meta http-equiv="refresh" content="0;URL=overzicht.php" />';
  198.  
  199. // en we sluiten het ?pag=update gedeelte weer.
  200. }
  201.  
  202.  
  203. // Hier onder is het vervolg van de "checklist"
  204. }else{
  205. // Wanneer niet alles is ingevuld komen ze hier terecht.
  206. echo" 1 of meerdere invoervelden zijn niet gebruikt. Ga terug!";
  207.  
  208. // Ook de else van de checklist sluiten we hier.
  209. }
  210.  
  211. // Hieronder komt het deel van het verwijderen
  212. // Omdat je geen POST gegevens in moet vullen om te verwijderen
  213. // Hoeft hij niet binnen de "checklist" te staan.
  214. if($_GET["pag"] == delete){
  215.  
  216. $query_del="DELETE FROM werkoverzicht WHERE id=" .$_GET["id"]; // verwijderen
  217. mysql_query($query_del) or die(mysql_error()); // hier ook weer mysql_error
  218.  
  219. // Stuur maar door als het gelukt is!
  220. echo'<meta http-equiv="refresh" content="0;URL=overzicht.php" />';
  221.  
  222. // en ook het delete gedeelte sluiten we weer.
  223. }
  224.  
  225. ?>
  226.  
  227.  
  228. </body>
  229. </html>
Download code! Download code (.txt)

Download dit script! Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (7)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.066s