Autor Zpráva
malej
Profil
function fetchMenu($parent = null){

        $menu = array();
        $q = mysql_query("select * from article_category where vnoreni='".$parent."'")or die(mysql_error());
        while($f = mysql_fetch_array($q)){
                $menu[$f['id']] = array($f,fetchMenu($f['id']));
        }
        return $menu;
}

function echoMenuOption(array $menu,$sub=0){
  $priority = array();
    foreach($menu as $v){
        echo "<option value=\"".$v[0]['id']."\">".str_repeat('-',$sub).$v[0]['nazev'];
        echoMenuOption($v[1],$sub+1);
  }
}


Moje otázka zní: Jak ve funkci echoMenuOption nahradit řádek obsahující echo za proměnnou ve které budou výsledky v jednom řádku oddělené pomocí /n a vypsané pomocí return?
Majkl578
Profil
Takhle by to šlo?
function getMenuOption(array $menu, $sub = 0)
{
	$data = '';
	$priority = array(); //??? nepoužitá proměnná
	foreach ($menu as $v) {
		$data .= '<option value="' . $v[0]['id'] . '">' . str_repeat('-', $sub) . $v[0]['nazev'] . "\n";
		$data .= getMenuOption($v[1], $sub + 1);
	}
	return $data;
}

echo getMenuOption(array(...));
malej
Profil
Majkl578:

Díky, moc mi to pomohlo. Trápil jsem se s tím už od rána a od dokonalosti mi chyběl tento řádek '$data .= getMenuOption($v[1], $sub + 1);'.
SwimX
Profil
malej:
Možná by ti pomohlo i http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
řešil jsem to zde http://diskuse.jakpsatweb.cz/?action=vthread&forum=28&topic=107668&page=-1

dá se to pak vrátit přímo od databáze seřazené.
malej
Profil
SwimX:
Nechtěl jsem, aby to bylo moc složité a ani se s tím v tom projektu nepočítá. :) Ale jinak díky za odkazy.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: