hi uhm ik ben zoals somigge van jullie weten al paar dagen/ weken bezig met mijn script te verbeteren
Dit gaat goede kant op, ook al ben ik soms eigenwijs en doe het vaak op eigen manier :P

nu heb ik een simpele vraag
ik kom hier uiteindelijk zelf ook wel achter denk ik maar ik stel hem ook maar even hier misschien vind ik dan sneller en een betere oplossing

ik heb een functie die checked of er een map bestaat en zoniet dan maakt hij deze aan
PS: let even niet op of het wel goed is enz
hij werkt en daar ben ik blij mee


function checkcachefolder($folder,$accountid,$jaar,$maand,$id) {	
if (!file_exists(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/user/'.$id.'')) 
		{
			mkdir(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/user/'.$id.'', 0777, true);
		}	  
}


nu wil ik deze uitbreiden naar ook een datum, maar alleen als dit nodig is.

Nu vroeg ik mij af of ik dan gewoon $datum kan toevoegen of moet je die dan ook gebruiken?
aangezien ik ook delen heb waar ik geen datum wil

ik kan bv een $datum = true toevoegen ofzo maar is dit echt nodig of kan ik gewoon die datum niet meegeven en dat hij deze dan ook niet gebruikt?
Ja ken in functies ook een standaard waarde gebruiken:

<?php
function checkcachefolder($folder, $accountid, $id, $jaar=NULL,$maand=NULL) {
// doe wat
}
?>

In dit geval hoef je $jaar en $maand niet verplicht in te vullen als 4e en 5e argument.
Let wel erop dat ik hier $id op de 3e plaats heb gezet, anders moet je een lege parameter meegeven voor de 4e en de 5e.

thanks ik denk dat dat mijn vraag heeft beantwoord :P
Waarom zie ik steeds ''. aan het begin van een string en .'' aan het eind?
Deze zijn leeg en dus zinloos.
Gewoon weglaten.


file_exists(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/user/'.$id.'')
Wordt dan:
file_exists($folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/user/'.$id)
Ik zie het wel eens vaker.
Dan vraag ik me af: Zet er dan ook wel eens iemand lege flessen in de koelkast als ze op zijn? Anyway, dit is geen aanval op de topicstarter.
@ - Ariën - : Goeie ...

Al met al scheelt het telkens 6 overbodige toetsaanslagen.
haha ja daar val ik ook wel eens over waarom wel waarom niet
ga ik je gelijk uitleggen,
ik heb in verleden wel eens codes moeten veranderen en als ik dus niet begon met die '. dan werkte de code soms niet
daarnaast als ik snel knipte en plakte dan was '..' even snel overal plaatsen beter dan hetzelfde en dan de eerste en laatste nog een keer aanpassen

het is dus meer een luiheid iets dan een reden ervoor :P

[size=xsmall]Toevoeging op 21/03/2020 21:04:37:[/size]

ok uhm het zal er een beetje raar uitzien maar weet ff geen goed manier om anders te doen en dit werkt :P
wil ff weten wat jullie ervan vinden


function checkcachefolder($folder,$accountid,$jaar,$maand,$id,$datum=NULL) {
	
if($datum != NULL) {
        
if ($id == 9999) {
 
$sql_cache = "SELECT datum_invoer FROM systeem_invoertotaal WHERE account='$accountid' AND id_user='9999' AND invoer_over='$datum' ORDER BY datum_invoer DESC limit 1";
$result_cache = $db->sql_query($sql_cache) or die(mysqli_error());
while($cache = mysqli_fetch_assoc($result_cache)){
$cachetime = $cache[datum_invoer];
}

$sql_datum = ''.$cachetime.'';
$file_datum = date('Y-m-d H:i:s', filemtime(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/users/'.$id.'/'.$datum.''));

if (file_exists(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/users/'.$id.'/'.$datum.'') && $sql_datum > $file_datum ) {

unlink(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/users/'.$id.'/'.$datum.'');
//sql is nieuwer
} 
elseif (file_exists(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/users/'.$id.'/'.$datum.'') && $sql_datum < $file_datum ) { 

include(''.$cachefolder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/users/'.$id.'/'.$datum.'');
//sql is ouder
}
else  {
echo 'error include cache';	
exit;
}

} else {
	
											 
	include(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'users/'.$id.'/'.$datum.'');
 }		
		
    }	
	elseif (!file_exists(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/users/'.$id.'')) 
		{
			mkdir(''.$folder.'/'.$accountid.'/'.$jaar.'/'.$maand.'/users/'.$id.'', 0777, true);
		}
else 
{
echo 'error include cache';	
}	
	
	
	

   
}


... ORDER BY datum_invoer DESC limit 1";
....
while($cache = ...


Je krijgt dus maar 1 resultaat, dus is de while() onzin.
ja die is ook onzin maar op elke andere manier die ik weet krijg ik andere output
soms goed soms niet
en dus had ik dit gedaan om er zeker van te zijn dat ik geen verkeerde info krijg
$cachetime = $cache[datum_invoer];

Kan je aanpassen naar:
$cachetime = $cache['datum_invoer'];

Anders denkt PHP dat het een constante is. Met notices aan, ga je hier inderdaad meldingen over krijgen.
maar ik zal nog een keer kijken of ik dit kan aanpassen misschien lukt dat nu wel :)
dat stukje is 8 jaar oud

Reageren