 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
15.10.2003, 12:07
|
#16
|
|
TP-Veteran
Registriert seit: Oct 2001
Ort: Oberau
|
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;
}
|
|
|
15.10.2003, 12:58
|
#17
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
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
|
|
|
15.10.2003, 13:23
|
#18
|
|
TP-Veteran
Registriert seit: Oct 2001
Ort: Oberau
|
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
|
|
|
17.10.2003, 11:52
|
#19
|
|
TP-Veteran
Registriert seit: Oct 2001
Ort: Oberau
|
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." ",$level+1);
}
return $baum;
}
Bin für jede Hilfe dankbar ...
mfg Alex
|
|
|
20.10.2003, 11:27
|
#20
|
|
TP-Veteran
Registriert seit: Oct 2001
Ort: Oberau
|
Das Problem besteht immer noch, kann mir da wer helfen?
mfg Alex
|
|
|
20.10.2003, 11:30
|
#21
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
|
|
|
20.10.2003, 14:14
|
#22
|
|
TP-Veteran
Registriert seit: Oct 2001
Ort: Oberau
|
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
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:39 Uhr.
|
 |