doszedłem do wniosku że najlepszą metodą na to (w troche ograniczonej formie) bedzie zastosowaniie prostego drzewka:
[sql:1:ecb7244da1]CREATE TABLE god_connections (
userid int(11) NOT NULL default '0',
parent int(11) default NULL
) TYPE=MyISAM;[/sql:1:ecb7244da1]
do wyciągania wszystkich użytkowników używam takiej funkcji
[php:1:ecb7244da1]<?php
function get_childs($id, $myid)
{
global $us;
static $cnt, $ilosc;
$cnt=!empty($cnt)? $cnt : 0;
$q=mysql_query("SELECT u.id, u.nazwa, c.parent FROM test u, god_connections c WHERE c.parent='".$id."' AND c.userid=u.id ORDER BY u.id ASC") or die(mysql_error());
$il=@mysql_Num_rows($q);
$ilosc+=$il;
if($il>0)
{
while($t=mysql_fetch_array($q))
{
get_childs($t["id"],$myid,0);
$us[$cnt]["n"]=$t["nazwa"];
$us[$cnt]["i"]=$t["id"];
$cnt++;
}
}
}
?>[/php:1:ecb7244da1]
i teraz, żeby wyciagnąć wszystkich użytkowników zwiazanych ze mną używam tego tak:
[php:1:ecb7244da1]<?php
$us=array();
get_childs(5,5);
?>[/php:1:ecb7244da1]
gdzie 5 to moj ID. W wyniku tego otrzymuje tablice z ID i nazwa.
Teraz pytania:
1. jak ograniczyć liczbę "poziomów" na 3 w dół od mojego (czyli tam gdzie userid=moj_id i parent=null)

2. jak zrobić, żeby otrzymywać jako kolejne pole w tabeli wszystkich rodziców (najlepiej po kolei) danego uzytkownika - czyli jak gdzies dalej mam znajomego Ziutka to widze mniej wiecj tak:
spenalzo <=> Marianna <=> Zdzisław <=> Ziutek
Dziekuję z góry za wskazówki i pomoc.