Hallo allemaal,
Ik heb een database tabel met daarin allemaal namen. Deze namen wil ik graag op mijn pagina alfabetisch tonen in een aantal kolommen. Nu gaat het niet helemaal goed, dit is mijn script, en op deze manier krijg ik geen output:

<?php
//Namen uit de database halen
$result = mysql_query("SELECT naam FROM namen") or die(mysql_error());
$arrayNamen = array();
while($row = mysql_fetch_assoc($result)){
	// Namen in een array zetten
	$arrayNamen[] = $row['naam'];
	
}
// het aantal namen delen door drie (wil 3 kolommen) en dat afronden naar boven
$aantal = ceil(count($arrayNamen) / 3);

// tabel beginnen
$namen .= "<table><tr>";
$i = 0;

// functie om de namen in de kolommen te zetten
function namenfunc($van, $tot){
	for($i = $van; $i < $tot; $i++){
		$namen .= "<td>".$arrayNamen[$i]."</td>";
	}
	// Nu wil ik eigenlijk de functie namenfunc weer opnieuw uitvoeren en nu met de waarden $tot en ($tot + $aantal), als ik dit doe krijg ik een melding dat de appache HTTP server niet meer werkt (ik draai lokaal)
	
	//$aantal2 = $tot + $aantal;
	//namenfunc($tot, $aantal2);
}
namenfunc(0, $aantal);

$namen .= "</tr></table>";
echo $namen;
?>

Ik heb het idee dat de array die ik eerst aanmaak niet toegangelijk is vanuit de functie, maar hoe los ik dat op? Lees ook goed het commentaar wat ik erbij gezet heb. ;)

Alvast bedankt!
Vars die buiten een function zijn aangemaakt zijn niet bekend in de function. Gebruik hiervoor global.
Kan je misschien een voorbeeld geven?
<?php
function namenfunc($van, $tot){
global $namen, $arrayNamen;
for($i = $van; $i < $tot; $i++){
$namen .= "<td>".$arrayNamen[$i]."</td>";
}
// Nu wil ik eigenlijk de functie namenfunc weer opnieuw uitvoeren en nu met de waarden $tot en ($tot + $aantal), als ik dit doe krijg ik een melding dat de appache HTTP server niet meer werkt (ik draai lokaal)

//$aantal2 = $tot + $aantal;
//namenfunc($tot, $aantal2);
}
?>
Bedankt, dat is duidelijk!
Ik krijg alleen nog steeds dezelfde melding (zie comments in de code) wanneer ik dit gebruik in de functie:
<?php
$aantal2 = $tot + $aantal;
namenfunc($tot, $aantal2);
?>


$aantal zet ik dan ook bij global...
Heb je hier misschien wat aan?
Bedankt, gaat nu wel lukken denk ik! :)

Reageren