---
title: "Rekursivt länksystem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/38400-rekursivt-länksystem"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Marcus"
published: "2002-02-25T15:47:48.000Z"
updated: "2002-02-25T15:47:48.000Z"
replies: 0
views: 263
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/38400-rekursivt-länksystem"
---

# Rekursivt länksystem

## #1 — Marcus, 2002-02-25T15:47Z

Tjena

Jag behöver hjälp med lite logik. :-)

På denna sida: 
<http://www.dindator.nu/marcus/recursive>

Jag försöker helt enkelt räkna alla länkarna som finns totalt under varje kategori. Jag lyckas med att skapa länkträdet, men lyckas inte summera antalet länkar. Du som är lite insatt i rekursiv programmering förstår säkert vilken logik jag pratar om. Jag postar koden nedan. 

```php
<?
function start_script( ) {
	initiate_db_connection();
	scan_categories('','-1','');
}

function initiate_db_connection( ) {
	$server		=	"******";
	$user		=	"******";
	$pass 		= 	"******";
	$db 		= 	"******";
	mysql_connect($server,$user,$pass) or die("FEL : Kunde inte koppla till databasen, var god försök senare.");
	mysql_select_db($db);
}

function scan_categories( $parent_id , $level , $links_so_far ) {
	$level = $level + 1;

	if ( !$parent_id ) {
		$where = " where parent_id is null";
	} else { 
		$where = " where parent_id = '".$parent_id."'";
	}

	$sql		=	"select * from 27_categories".$where;
	$result		=	mysql_query($sql);

	while ( $data = mysql_fetch_array($result)) {
		scan_categories($data[category_id], $level, $links_so_far);
	}
	// Hämtar information om föregående kategori
	if ( $parent_id ) {
		$links_so_far = get_info_about_category( $parent_id , $level, $links_so_far);
	}
	unset ($level);
}

function count_links_in_category( $category_id ) {
	$sql = "select count(*) from 27_ref where category_id = '".$category_id."'";
	$result = mysql_query($sql);
	$data = mysql_fetch_array($result);

	if ( !$data[0] ) {
		$data[0] = '0';
	}

	return $data[0];
}

function get_info_about_category( $category_id, $level, $links_so_far ) {
	$sql = "select * from 27_categories where category_id = '".$category_id."'";
	$result = mysql_query($sql);
	$data = mysql_fetch_array($result);

	$level_tmp = $level;
	while ($level_tmp != 0) {
		$level_tmp = $level_tmp - 1;
		$space .= "&nbsp;&nbsp;&nbsp;";
	}

	$links = count_links_in_category( $category_id );
	$links_so_far = $links_so_far + $links;

	echo $space.$level.".<a href=\"\">".$data[category_title]."</a> ( <i>".$links.",".$links_so_far."</i> )<br>";

	return $links;
}

start_script();
?>
```

Permalänk: https://www.webforum.nu/p/38400

---

Tråden på webben: https://www.webforum.nu/amne/php/38400-rekursivt-länksystem
