Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Drzewka - 2 problemy (pytania)
spenalzo
post 7.12.2003, 23:51:00
Post #1





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


A więc tak:
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) questionmark.gif

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.


--------------------

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 08:25