Archief - PHP: Array prob, raak er niet aan uit.

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

orez

Legacy Member
PHP:
/* Bepaal begin- en einddatum van deze maand */
	$startmonth = date("Ym") . "000000";
	$endmonth = (date("Ym") + 1) . "000000";
   
   	/* Haal alle hits van deze maand op */
	$stats=	"SELECT 
				COUNT(*) AS uniek, 
				SUM(hits) AS hits,
      			SUBSTRING(visitdate, 7, 2) AS day 
			FROM 
				ip
      		WHERE 
				visitdate BETWEEN '" . $startmonth . "' AND '" . $endmonth . "'
      		GROUP BY 
				day 
			ORDER BY 
				day 
			ASC";
			
	if($result = mysql_query($stats)) {
		$max = 1;							// initiële max startwaarde
   		$total_hits = 0;					// totale hits startwaarde	
   		$total_unique = 0;					// totaal unieke hits startwaarde
   		$aantal = 0;						// aantal startwaarde
		
   		while ($obj = mysql_fetch_object($result)) {
      		$hits[$obj->day] = $obj->hits;					//$hits array aanmaken en vullen met hits op bijhorende dag
      		$uniek[$obj->day] = $obj->uniek;				//$uniek array aanmaken en vullen met bezoekers op bijhorende dag
	  			if ($obj->hits > $max) {
         			$max = $obj->hits;  					//hoogste waarde bepalen
				}
      		$h_total += $obj->hits;							//totaal aantal hits gedurende de maand
      		$u_total += $obj->uniek;						//totaal aantal bezoekers gedurende de maand
      		$aantal++;
   		}
	}

ik heb bovenstaand script. Nu zie je dat ik $uniek & $hits heb, als arrays. Nu, als ik ze laat lopen via deze functie, en ze nadien opvraag, geeft die nix terug! ja er zit info in de database!!!

Als ik bv printf($obj->day); printf($obj->uniek); of printf($obj->hits); doe, dan print hij wel de waarden af!, maar da moet em ni doen kwil die waarden in die array dat ik ze later kan opvragen a la printf($hits[05]);

(zoals je ziet werk ik met 01, 02, 03, ...)

iemand die hier het probleem ziet? ben er op kapotgezocht...

dJeez

Legacy Member
De fout zit op 't eerste zicht in uw whereclausule. De date("Ym") + 1 die je gebruikt voor $enddate is gegarandeerd verkeerd (je telt 1 op bij een stringwaarde, da's wel origineel :p). Je kan trouwens beter strftime gebruiken voor je datumberekeningen.

Wat basisdebugging (vb. een echo van de uitgevoerde query) had dat trouwens direct aan 't licht gebracht...

maT'

Legacy Member
ru`orez zei:
ik heb bovenstaand script. Nu zie je dat ik $uniek & $hits heb, als arrays. Nu, als ik ze laat lopen via deze functie, en ze nadien opvraag, geeft die nix terug! ja er zit info in de database!!!
Hoe test je of die informatie in een array zit?
Probeer je ze af te drukken als volgt: printf($hits[01]); ?

If so, probeer dan eens: print_r($hits);

Dan weet je direct of de index's correct zijn in je array (daar kan de fout ook liggen, waarden die overschreven worden ofzo).

killgore

Legacy Member
echo "<pre>".var_dump($hits)."</pre>"; voor deftige html-debug output v/e array ;).

orez

Legacy Member
dJeez zei:
De fout zit op 't eerste zicht in uw whereclausule. De date("Ym") + 1 die je gebruikt voor $enddate is gegarandeerd verkeerd (je telt 1 op bij een stringwaarde, da's wel origineel :p). Je kan trouwens beter strftime gebruiken voor je datumberekeningen.

Wat basisdebugging (vb. een echo van de uitgevoerde query) had dat trouwens direct aan 't licht gebracht...

de query werkte... zoals daj ook kon lezen in mn post :p em wil gewoon de array niet vullen, was ff paar dagen weg, zal s wat testen nu
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan