login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Jaren in de database

Offline marco06 - 20/01/2006 22:16 (laatste wijziging 20/01/2006 22:17)
Avatar van marco06HTML interesse Ik weet even niet hoe ik het anders moet omschrijven in de titel!

Ik heb 520 namen in de database staan en daarbij een aantal jaren dat ze meedoen als vrijwilliger.

Nu moet ik dat elk jaar bijwerken, maar is er ook een andere manier zit ik me af te vragen.

+--------------+-------------+------+-------+--------------+
| Voornaam | Achternaam | j1988 | j1989 | etc tot j2006 |
+--------------+-------------+------+-------+--------------+
| Pietje | Heertje | 0 | 0 | 1 |
+--------------+-------------+------+-------+--------------+

Is nu een manier op automatisch een kolom erbij te doen via een php code?
En is er een manier om alle 5, 10, 15, 20 en 25 jaren bij elkaar op te tellen i.p.v.
$aantal = $list['j1988']+$list['j1989']+$list['j1990'];

  1. <?php
  2. if ($aantal == 5){
  3. echo "5 jaar jubi";
  4. } ifelse ($aantal == 10){
  5. echo "10 jaar jubi";
  6. }?>


Wie kan me hierbij helpen?

5 antwoorden

Gesponsorde links
Offline Thomas - 20/01/2006 22:24
Avatar van Thomas Moderator euh... Kunnen mensen dan tussendoor ook een jaar inactief zijn?
Anders zou ik gewoon enkel het jaar dat ze begonnen zijn met vrijwilligerswerk bijhouden, en niet alle jaren tussendoor...

En anders zul je ze allemaal moeten controleren, ja.
Offline marco06 - 20/01/2006 22:46 (laatste wijziging 20/01/2006 22:51)
Avatar van marco06 HTML interesse Ja, ze inderdaad inactief zijn.

Echter waar mijn grootste ergenis zit, ik moet elk jaar in de database romelen om een kolom erbij maken. Daarnaast moet ik in de php het jaartal weer goed zetten. Maar dat zou toch ook automatisch moeten lopen??

Dit heb ik inmiddels gemaakt:
  1. <?php
  2. $query = mysql_query("SELECT * FROM vrijwilligers ORDER BY achternaam ASC") or die(mysql_error());
  3. $res = mysql_num_rows($query);
  4. ?>
  5. <table cellpadding="0" cellspacing="0" border="0" class="noborder">
  6. <tr>
  7. <td>Nr.:</td>
  8. <td width="150">Naam</td>
  9. <td width="80" align="center">Aantal jaar</td>
  10. <td>Jubileum</td>
  11. </tr>
  12. <?
  13. while($list = mysql_fetch_array($query)){
  14. echo "<tr><td><a href='?p=../webmaster/diverse/vrijwilligerw&idnr=".$list['idnr']."'>".$list['idnr']."</a></td>";
  15. echo "<td> " .$list['voornaam']. " " .$list['achternaam']. "</td>";
  16. {
  17. $query1 = mysql_query("SELECT * FROM vrijwilligers WHERE '".$list['achternaam']."' AND '".$list['voornaam']."'") or die(mysql_error());
  18. $aantal = $list['een']+$list['twee']+$list['drie']+$list['vier']+$list['vijf']+$list['zes']+$list['zeven']+$list['acht']+$list['negen']+$list['tien']+$list['elf']+$list['twaalf']+$list['dertien']+$list['viertien']+$list['vijftien']+$list['zestien']+$list['zeventien']+$list['achttien'];
  19. $j2006 = $list['achttien'];
  20. $j2007 = $list['j2007'];
  21.  
  22. $jaartal = date("Y",time());
  23. if ($nu == $jaartal){
  24. }
  25. echo "<td align='center'>".$aantal."</td>";
  26. if ($j2006 == 1){
  27. if ($aantal == 5){
  28. echo "<td><strong>".$aantal."-jarig jubileum</strong></td></tr>";}
  29. elseif ($aantal == 10){
  30. echo "<td><strong>".$aantal."-jarig jubileum</strong></td></tr>";}
  31. elseif ($aantal == 15){
  32. echo "<td><strong>".$aantal."-jarig jubileum</strong></td></tr>";}
  33. elseif ($aantal == 20){
  34. echo "<td><strong>".$aantal."-jarig jubileum</strong></td></tr>";}
  35. }
  36. else {
  37.  
  38. }
  39.  
  40. }
  41. }
  42. echo "</table>";
  43. ?>


Dit heb inmiddels al voor de kolom toevoegen:
  1. <?
  2. $sql = 'ALTER TABLE vrijwilligers ADD '.$_POST['knaam'].' TINYINT(1) NOT NULL';
  3. echo "Er is een kolom toegevoegd aan de database";
  4. ?>
Offline TFOL - 20/01/2006 23:01
Avatar van TFOL PHP beginner ook is het niet ifelse maar elseif, het is maar dat je het weet;-)
Offline Thomas - 21/01/2006 00:46
Avatar van Thomas Moderator Anders maak je een (koppel)tabel actief_in, met als velden een id, een user_id en een jaartal.

Dan kun je het aantal jaren dat iemand actief is berekenen met
SELECT COUNT(id) AS jaren_actief
FROM actief_in
WHERE user_id = een-of-ander-user-id
GROUP BY user_id

Of je laat de where-clause weg, en dan heb je een lijst met alle jaartallen (je zou ook nog kunnen sorteren op jaren_actief).

Elke keer een nieuwe rij toevoegen aan deze tabel lijkt mij beter dan de hele tijd een kolom erbij klussen in de vrijwilligers-tabel. Je bent dan bezig met het wijzigen van de structuur van je tabel, iets wat je eigenlijk moet zien te vermijden.
Offline marco06 - 21/01/2006 11:22
Avatar van marco06 HTML interesse ja thanks, dat is een idee!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s