webForumDet fria alternativet

Problem med en function och while loop

2 svar · 442 visningar · startad av Danielkun

DanielkunMedlem sedan maj 2003358 inlägg
#1

Jag bygger en kalender som läser in dagar och medelanden från en CSV fil och markerar dem i kalendern.

Till detta ropar jag på en function från FOR loopen som skriver ut datumen i kalendern.
Denna function jämnför det aktuella datumet genom en WHILE loop som kollar CSV datan.

Kadai2.csv filen innehåller följande data:
2006-11-13,Daniel
2006-11-14,Markus

Kalendern skriver dock bara ut 2006-11-13. 2006-11-14 kommer inte med.
Varför funkar inte WHILE i functionen?

function checkcvs($year,$month,$i){

$handle = fopen("Kadai2.csv", "r");

	while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

		if ($data[0] == $year . "-" . $month . "-" . $i) {
		return "<b>" . $i . "</b>";
		}
		else {
		return $i;
		}
		
	}
	
fclose($handle);

}

Denna funktion kallas lika många ggr som det finns dagar i månaden. Är det fopen och fclose som ställer till det?

Tack!

GislavedMedlem sedan nov. 20041 480 inlägg
#2

Utan att ha tittat speciellt mycket på din kod skulle jag testa om det är något fel med radbrytningarna. Kika på http://se.php.net/manual/en/ref.filesystem.php#ini.auto-detect-line-endings

Har du testat med mer data i filen? Den kanske behöver ytterligare en blankrad för att fungera.

DanielkunMedlem sedan maj 2003358 inlägg
#3

Tack för hjälpen!

Jag tänkte om lite och byggde om så jag läser in allt i en array från början så räcker det att läsa in filen en gång i början istället. Och sedan kolla informationen mot arrrayen istället. Men tack för hjälpen!

Genererad på 370 ms · cache AV · v20260730165559-full.f96bc7eb