misiek172
30.01.2007, 17:45:03
Mam głupi logiczny problem, męczę się juz 4 godzine i nic, juz prawie mam i znowu do pkt wyjścia...
chodzi o to, że np mam drzewko:
but1
.|- but2
.|.....|-but5
.|-but3
.|.....|-but6
.|.....|-but7
.|-but4
.......|-but8
.......|-but9
.............|-but10
teoretycznie powinno to wygladac tak:
but1 = but5 + but6+ but7 + but8 + but10
but2 = but5
but3 = but6 + but7
but4 = but9
but8 = but9
czyli zawsze najniższego dziecka wartość ma być zsumowana.
czyli sprawdza czy dane dziecko, ma jeszcze dziecko, jeśli nie to dodaje jego sumę, jeśli ma to sumę dzieci (jesli nie maja tez dzieci), no i to jest bardzo poplątane i nie mogę sobie poradzić za holere.
Porszę o pomoc, i z góry dziękuje, Łukasz.
albo nie... ja dosłownie BŁAGAM o pomoc, juz mam depresje jak patrzę na to...
Cienki1980
30.01.2007, 18:19:55
Że tak się zapytam o dwie rzeczy :
but4=but8+but10 << nie powino być tak

but9=but10 << nie powinno być tak

I w jakiej postaci masz te dane

W jakiejs wielowymiarowej tablicy czy jakoś inaczej. Kiedyś pisałem podobną funkcję szukająca po wielowymiarowej tablicy i wykonujące działania na danych z poszczególnych poziomach.
misiek172
30.01.2007, 20:48:54
masz racje jeśli chodzi o but 4i but9, pomiło mi się ;P
a dane mam w bazie MySQL, jest to drzewko folderów oparte na klasie NoSpora.
Wygląda tak: ID, ID_PARENT, NAZWA, MAG
i ID_PARENT określa id rodzica, nazwa to nazwa ;P a właśnie MAG ma sumować
Cienki1980
31.01.2007, 11:09:16
Na szybko przerabiane z mojej funkcji. Przy moich kilku testach wyszło chyba poprawnie.
<?php
function getIDS($main_id,$text)
{
$pyt1=mysql_query("select * from test where id_parent='".$main_id."'"); if($ile1>0)
{
for($f=0;$f<$ile1;$f++)
{
$text=getIDS($tmp_w['id'],$text);
}
}
else
{
$pyt2=mysql_query("select * from test where id='".$main_id."'"); $text+=$wiersz2['sum'];
}
return $text;
}
$sum=0;
$first_id=4;//pierwsze id od ktorego chcesz zaczac zliczanie.
echo getIDS
($first_id,$sum); ?>
Sprawdź czy zadziała.
misiek172
31.01.2007, 17:16:51
próbuję go przerobić pod mój skrypt ale nie zlicza.. i coś mi tu nie gra, mianowicie to w tym ELSE. Dlatego, iż według tego jeśli znajdzie wiersz to daje jego sume i koniec dalszych nie szuka... jeśli dobrze zrozumiałęm.
luzik chodzi, udało mi się to optymalizować do mojego skryptu

Dziękuje, i jeszcze THX normalnie mam u Ciebie dług wdzięczności.
nospor
31.01.2007, 17:26:06
Cytat
luzik chodzi, udało mi się to optymalizować ale długo się wczytują wartości
skeszuj sobie i bedzie git. Przeciez nie musisz za kazdym razem ich wyliczac na nowo.