![]() |
![]() |
![]()
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) ![]() 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. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 08:25 |