zo hehe eindelijk posten, was eerst ff rond neuzen in phphulp... maar nu eindelijk doen wat ik vanaf begin van de ochtend wou doen. Ik ben al een tijdje bezig voor mijn werk om een rooster online te zetten, moet zeggen dit lukt me aardig gelukt was.

Alleen nu bij het persoonlijk rooster zou ik graag willen om het rooster weer te geven per vier weken en de totalen op te tellen per periode. (dus het script zou rekening moeten houden mee dat 1 t/m 4 1 periode is en 5 t/m 8 ga zo maar door, maar bij weken van 53 weken is ons zo bedrijf zo omslachtig geweest om 45 tm 49 te doen (5 weken) em 50 tot en met 53)...

Alleen weet ik niet hoe ik dit het besta kan op zetten, want zelf dacht ik dat ik iets moet doen met een date() functie die alle weken van het jaar moet kennen en daarna bepalen welke weken in werlke periode zit maar door dat al meerdere dingen geprobeerd hebt kom ik nu hier bij jullie.

<?
echo '<h1>Persoonlijk rooster: '.$naam.'</h1>';


echo '<a href=rooster.php>Week rooster</a> |'; 

 $query = mysql_query("SELECT * FROM `kw_personeel` WHERE id='".$_GET['id']."'");
$row = mysql_fetch_array($query); 
		
print "
<a href=\"javascript:void(null)\" target=\"_self\" onClick=\"window.open('print_persoonlijk_rooster.php?id=".$row['id']."','1','height=400,width=600,adress=0,location=0,menubar=0,statusbar=0,locationbar=0,scrollbars=1,resizable=1');\">Print rooster</a>";



  print'<br><br><form><table width="100%" class="kwantum_td">
    <tr>
    <td height="20"><b>&nbsp;</b></td>
      <td height="20">';
       
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
      $naam = $_GET['id'];
  
    } else {
      $naam = '0';
    }

print ' <select onchange="this.form.submit()" name="id" id="jaarweek" value="'.$result['naam'].'"/>';

$query = mysql_query("SELECT * FROM `kw_personeel` WHERE actief = 1 ORDER BY naam ASC") or die (mysql_error());
while($result = mysql_fetch_assoc($query)){
     
print '<option value="'.$result['id'].'"' . ($naam == $result['id'] ? ' selected="selected"' : '') . '>'.$result['naam'].'
    </option>';
   
   }
   
print'</select></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Ctr</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Ma</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Di</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Wo</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Do</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Vri</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Za</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Zo</b></td>
      <td class="kwantum_td" height="20" width="40"><b>&nbsp;Uren</b></td>
    </tr>';
  
    
print '<tr>
      <td class="kwantum_td" colspan="2" height="20" width="40">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'.isset($result1['maandag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'.isset($result1['dinsdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'.isset($result1['woensdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'.isset($result1['donderdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'.isset($result1['vrijdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'.isset($result1['zaterdag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;'.isset($result1['zondag']).'</td>
      <td class="kwantum_td" height="20" width="40">&nbsp;</td>
    </tr>';
  
    
  //afdeling en namen hier
$query = mysql_query("SELECT * FROM `kw_personeel` WHERE id='".$_GET['id']."'");
$row = mysql_fetch_array($query);

  print '<tr class="kwantum_td_title">
      <td colspan="11" height="20">&nbsp;Week - Jaar</td>
    </tr>	';
    
 function weekToweek($date)
{
	$week = substr($date, 2);
	$jaar = date('Y', mktime(0, 0, 0, 1, 1, substr($date, 0, 2)));
	return 'week ' . $week . ' - ' . $jaar;
}

if($status == "1"||$status == "2"){ 
  $query2 = mysql_query("SELECT * FROM kw_rooster WHERE naam = '" . $naam . "' ORDER BY jaarweek DESC") or die (mysql_error());
} else {
  $query2 = mysql_query("SELECT DISTINCT kw_rooster.* FROM `kw_rooster` JOIN `kw_week` ON kw_rooster.jaarweek = kw_week.jaarweek WHERE kw_week.actief = 1 AND kw_rooster.naam = '" . $naam . "' ORDER BY kw_rooster.jaarweek DESC");
}
  
while($row = mysql_fetch_assoc($query2)){

  $qu = mysql_query("SELECT * FROM `kw_week` WHERE jaarweek ='".$row['jaarweek']."'");
  $week = mysql_fetch_array($qu); 
  
  $qu = mysql_query("SELECT * FROM `kw_personeel` WHERE id ='".$row['naam']."'");
  $naam = mysql_fetch_array($qu);
  
print '	<tr>
<td class="kwantum_td" height="20" colspan="2">&nbsp;';
if($status == "1"||$status == "2"){ 
print'<a href="maak_rooster.php?actie=lees&id='.$row['id'].'">';
}
else {
print '<a href="rooster.php?jaarweek='.$row['jaarweek'].'">';
}
print''.weekToweek($week['jaarweek']).'</a>';


print '</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$naam['contract'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$row['maandag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$row['dinsdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$row['woensdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$row['donderdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$row['vrijdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$row['zaterdag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$row['zondag'].'</td>
      <td class="kwantum_td" height="20" width="40" align="center">'.$row['totaaluren'].'</td>
    </tr>';



if($status == "1"||$status == "2"){ 
   
    //totalen
       print' 
      <tr>
      <td class="kwantum_td" colspan="9" height="20">&nbsp;(test blok alleen zichtbaar voor admin en mods)</td>
       <td class="kwantum_td" height="20" width="80" align="center" colspan="2"><i>Totaal: ';
       
     $select= "SELECT SUM(totaaluren) AS totaaluren FROM kw_rooster WHERE naam = '" . $naam['id']. "' AND  jaarweek = '".$row['jaarweek']."'";
     $query = mysql_query($select); 
     $result = mysql_fetch_assoc($query); 
echo $result['totaaluren'];

print'</i></td>
    </tr>
     <tr>
      <td class="kwantum_td" colspan="11" height="20">&nbsp;</td>
    </td>
    </tr>';
    }
    
    }
    
  print '<tr>
      <td class="kwantum_td" colspan="2" height="20">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
      <td class="kwantum_td" height="20" width="40" align="center">&nbsp;</td>
    </tr>';
  	
  //einde rooster 

  print' 
      <tr>
      <td class="kwantum_td" colspan="9" height="20">&nbsp;</td>
       <td class="kwantum_td" height="20" width="80" align="center" colspan="2">Totaal: ';
       
     $select= "SELECT SUM(totaaluren) AS totaaluren FROM kw_rooster WHERE naam = '" . $naam['id']. "'";
     $query = mysql_query($select); 
     $result = mysql_fetch_assoc($query); 
echo $result['totaaluren'];

print'</td>
    </tr>
        <tr>
      <td class="kwantum_td" colspan="11" height="20">&nbsp;</td>
    </td>
    </tr>';
  }
//einde optelling



 print '<tr class="kwantum_td_title">
      <td colspan="11" height="20">&nbsp;Opmerkingen</td>
    </tr>
    <tr>	
	   <td colspan="11" height="20"><br>';

if($status == "1"||$status == "2"){ 

      
      print ''.$naam['opmerkingen'].'';
      
      }
print' <br><br></td>
    </tr>
  </table></form> ?>


Met array's?

<?php
$periodes = array(
1 => array(1, 2, 3, 4),
2 => array(5, 6, 7, 8),
3 => array(9, 10, 11, 12),
// etc.
);
?>


Deze dan met een foreach in een foreach doorlopen, et voila : ).
Ik zie dat je gebruik maakt van een database. In dat geval zou je de verschillende perioden in een aparte tabel op kunnen slaan, dus zoiets:

perioden
-----------
id INT
start DATE
end DATE

Op deze manier kun je per periode een begin en einddatum aangeven en periodes wijzigen en verwijderen.

Vervolgens kun je aan de hand van deze datums en de andere gegevens over het rooster uit je database bepalen welke dagen in welke periode vallen.
beide bedankt voor jullie reacties.

Voor die periodes en met die arrays houd tie zelf rekening mee de aantal weken in een jaar ? Ik heb zelf vrij weinig ervaring met array's (A)



Natuurlijk niet. Maar er bestaat een optie bij [php]date[/php]() die het aantal weken in een jaar op kan halen. Misschien met dat + wat automatisme er een mooie array uit komt rollen?

Al zou ik dan toch voor de database optie gaan. Dit alleen niet met data doen, maar met weeknummers.
hmmm ff denken hoor, als ik een extra tabel maakt met daarin de aantal periodes dan betekend het nog dat ik zelf van te voren alle periodes meot aan geven toch? dit kan volgens mij bijna niet automatisch?

Misschien heb je er wat aan als ik meld dat de weken worden ook al handmatig ingevoerd, waarbij we de week bestaande hebben uit jaar - week dus 0810.. misschien zijn hier nog opties voor?

kan ik dan misschien niet beter zeggen dat bij het invoeren van een week de periode nummers worden toegschreven in de db uit DB date()? met week nummers?
al een tijdje heb ik niet meer terug gekeken op het forum, misschien de hoop dat iemand me het nog iets duidelijkes kon uit leggen of hoe of wat. Ik maak inderdaad gebruik van een DB. alles word goed en netjes uit gelezen maar wat ik graag zou willen is dat ik de gegevens per 4 weken zichbaar zijn met een subtotaal.

Met arrays kom ik niet ver mee tot nu toe, of iemand meot een goed voorbeeld hebben waar ik in mijn situatie het kan gebruiken. ene kant lijkt het me simpel maar kan me tot nu toe niet echt iets vinden met daarop wat ik wil.

Reageren