phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 15.10.2003, 12:07   #16
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
Zitat:
Original geschrieben von Stuck Mojo
Also ich würd den Quell-Baum in ein assoziatives Array einlesen und dann an eine Funktion übergeben, die den Baum in die DB einspielt.
In dieser Funktion holst du dir einfach nach jedem Insert die ID und ordnest Sie den aktuellen "Ast" als neu ID zu. Wenn jetzt ein Kind von einem Element kommt, bekommst du die neue ID über eben vergebene ID heraus. Also du musst 2 Beziehungen herstellen. 1. zwischen dem Original (Mutter/Kind IDs) + 2. der evtl. neu entstandenen IDs.

...ich glaube ich würde es nicht verstehen, wenn ichs lesen würde ... aber ich probiers trozdem.

Gruss
Jan

EDIT
und wenn du den Quatsch mit dem MD5 rauslassen würdest, könnte man das sogar noch in der DB mit den Augen gegenchecken
Habs versucht aber nciht hingekriegt, die funktion liest die DB daten in ein Array funzt aber nicht so wie ich will. Die Rekursion ansich sieht in Ordnung aus.
Code:
function DB2vorlage ( $objekt , $level = 1 )
{
	global $db;
	$db->record = "";
	
	$db->query ( "SELECT objekt_id,name FROM objekte WHERE objekt_id = '" . $objekt . "'" );
	$record = mysql_fetch_assoc ($db->record);
	
	$vorlage[$level]['name'] = $record['name'];
	$vorlage[$level]['objekt_id'] = $record['objekt_id'];
	//$vorlage[$level]['stream'] = $record['stream'];
	
	$db->query ( "SELECT objekt_id FROM objekte WHERE mutterobjekt_id = '" . $objekt . "'" );
	$erg = $db->record;
	while ($record = mysql_fetch_assoc ($erg) )
	{
		DB2vorlage ( $record['objekt_id'] , $level + 1 );
	}
	
	return $vorlage;
}
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten


Alt 15.10.2003, 12:58   #17
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
nene.
da bleibst doch immer zweidimensional mit deinem array. Sobald du wieder eine ebene höher kommst, überschreibst du dir die vorher defnierten Bereiche in dem jeweiligen Level.

wenn du eine ebene tiefer in den baum reingehst, dann übergib doch die Referenz des jeweiligen arraybereichs an die Rekursion und arbeite damit in der nächsten ebene weiter.
also
DB2vorlage ( $record['objekt_id'] , $level + 1, & $vorlage[$level] );

arbeite generell mit Refernezen, wenn du mit rekursionen spielst, so erzeugst du einen haufen kopien deines hashes.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 15.10.2003, 13:23   #18
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
Danke Longfang, spar mir jetzt aber das Array und häng die Objekte gleich dran ( Sofort per MySQL INSERT).

Deinen Tipp werde ich mir merken, danke

mfg Alex
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Alt 17.10.2003, 11:52   #19
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
Weiter geht der rekursive Spass

Soweit funktioniert alles gut, der Baum wird sauber geladen, nur ist das Ding elends tief und somit auch ellenlang .

Wie kann ich es realisieren, dass die Child Objekte nur aufgehen wenn ich auf das mutterobjekt klicke, so wie im Windows Explorer also.

Meine function:

PHP-Code:
function getBaum ($id,$openID,$space="",$level=0)
{
    global 
$db;
    
$baum "";
    
    
$db->query("SELECT objekt_id,name,mutterobjekt_id FROM objekte WHERE mutterobjekt_id = '" $id "' ORDER BY name ASC");
    
$erg $db->record;
    while (
$record mysql_fetch_array($erg))
    {
        if (
$level == 0)
        {
            
$baum.= "<tr>\n";
            
$baum.= "<td>".$space."<a class=\"navi\" onClick=\"javascript:zweiFrames(0,'navi.php?openID=".$record['objekt_id']."',1,'showobjekt.php?objekt_id=".$record['objekt_id']."');\" onFocus=\"if(this.blur)this.blur();\" href=\"#\">" $level " - " $record['name']."</a></td>\n";
            
$baum.= "</tr>\n";
        }
        else
        {
            
$baum.= "<tr>\n";
            
// onClick=\"javascript:changeColor('".$record['objekt_id']."','#ff9900');\"
            
$baum.= "<td id=\"".$record['objekt_id']."\">" $space $level " - <a target=\"mainFrame\" class=\"navi\" onFocus=\"if(this.blur)this.blur();\" href=\"showobjekt.php?objekt_id=".$record['objekt_id']."\">".$record['name']."</a></td>\n";
            
$baum.= "</tr>\n";
        }
        
        
        
$baum.= getBaum($record['objekt_id'],$record['objekt_id'],$space."&nbsp;&nbsp;&nbsp;",$level+1);
    }
            
    return 
$baum;

Bin für jede Hilfe dankbar ...
mfg Alex
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Alt 20.10.2003, 11:27   #20
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
Das Problem besteht immer noch, kann mir da wer helfen?

mfg Alex
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Alt 20.10.2003, 11:30   #21
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Vielleicht hilft das? http://pear.php.net/package/HTML_TreeMenu

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 20.10.2003, 14:14   #22
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
Hi Jan,

Sorry Jan, aber auf PEAR möchte ich, aus Verständnisgründen, in diesem Fall lieber nicht zurückgreifen. Geht mir nämlich in erster Linie ums Verständnis und das ist bei fremden Code eher schwierig.

Gruß Alex
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Rekurisve Funktion probs Rekurisve Funktion probs
« Chmod | daten werden nicht übernommen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:39 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67