SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 03.02.2006, 08:51:17
Nena Nena ist offline
Anfänger
 
Registriert seit: Feb 2006
Beiträge: 4
Rekursive Funktion

Hallo Forum!

Ich beschäftige mich gerade mit der Programmierung eines Fileservers, habe damit aber noch so meine Schwierigkeiten, weil ich absolute Änfängerin bin. Ich brauche also dringend eure Hilfe!

Momentan bin ich daran, eine eine Funktion zu schreiben, die mir, wenn ich ein beispielsweise ein Unterverzeichnis "Verzeichnis1.1.1" erstelle, den gesamten Verzeichnispfad zurückgibt, also z.B. ../fileroot/Verzeichnis1/Verzeichnis1.1/Verzeichnis1.1.1!
Ich denke, das muss eine rekursive Funktion sein, da sich das ganze in etwa so abspielen soll: Ich habe die ParentVerzeichnisID meines neu angelegten Unterverzeichnisses "Verzeichnis1.1.1", die wiederum die ID des Verzeichnisses direkt darüber ist. Dann sehe ich in der DB nach: Hat dieses oebere Verzeichnis wiederum eine ParentVerzeichnisID, wenn ja, verfolge ich dieses weiter. Und das GAnze geht so lange, bis ein Verzeichnis mal keine ParentVerzeichnisID mehr hat, also das oberste ist...

Nur wie bringe ich das in eine rekursive Funktion?

Bitte helft mir! :-)
Mit Zitat antworten
  #2  
Alt 03.02.2006, 11:16:50
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Rekursive Funktion

willkommen im forum!

es gibt die annahme, dass jede rekursion auch iterativ darstellbar ist. ich formuliere, das was du machen willst, mal so:

id = id von Verzeichnis1.1.1!;

pfad = findepfad( id );

function findepfad( id ) {

parentid = parentId von id;
verzeichnisname = verzeichnisname von id;

wenn parentid == null
return verzeichnisname + '/';
sonst
return findepfad( parentid ) + '/' + verzeichnisname;

}

wenn mich nicht alles täuscht, müsste das so klappen.
Mit Zitat antworten
  #3  
Alt 03.02.2006, 12:07:59
Nena Nena ist offline
Anfänger
 
Registriert seit: Feb 2006
Beiträge: 4
AW: Rekursive Funktion

Hallo Feuervogel,

erst einmal tausend Dank für deine Antwort! Ich bin gerade noch am "rumbasteln", hab die Funtion jetzt nach deiner Anleitung mal so geschrieben:

PHP-Code:
function findepfad($iID_neuVerz)
{
$sSql "SELECT * FROM tblverzeichnis WHERE ID = " $iID_neuVerz "";
$sResult =  mysql_query($sSql);
$iParentVerzID mysql_result($sResult0"parentVerzeichnisID");
$iVerzNameNeu mysql_result($sResult0"verzeichnisName");

if (
$iParentVerzID == 0)
{
return 
"../fileroot/$iVerzNameNeu/";
}
else
{
return 
"../fileroot/"+findepfad($iParentVerzID)+'/'+$iVerzNameNeu;
}

Ich habe jetzt allerdings gerade folgendes Problem: Ich erstelle mein Unterverzeichnis und speichere die dazugehörigen Daten (ID, Name...) in der DB. Da ich für die Funktion findepfad() ja die ID des neuen Verzeichnisses benötige, will ich die nun sofort im Anschluß aus der DB holen, um sie zu übergeben - aber das geht irgendwie nicht (wenn ich die ID dann ausgebe, sehe ich, das die Variable leer ist).
Weißt du, warum das so ist? Eigentlich müsste ich die Daten doch aus der DB holen können, sobald sie dort eingetragen sind, oder?

Danke dir!!
Mit Zitat antworten
  #4  
Alt 07.02.2006, 11:08:05
Nena Nena ist offline
Anfänger
 
Registriert seit: Feb 2006
Beiträge: 4
AW: Rekursive Funktion

Endlich hab ich's :-) Eigentlich gar nicht so schwer...
Falls es jemanden interessiert, poste ich hier mal meine Funktion:

function findepfad($id)
{
// ich suche die parentVerzID des neuen Verzeichnisses:
$sql = "SELECT * FROM tblverzeichnis WHERE ID = " . $id . "";
$result = mysql_query($sql);
$parentid = mysql_result($result, 0, "parentVerzeichnisID");
//und den Verzeichnisnamen:
$verzeichnisname = mysql_result($result, 0, "verzeichnisName");

//3. wenn parentid == null (->das Verzeichnis ist das oberste)
if ($parentid == 0)
{
return $verzeichnisname;
}
else
{
//Rekursiver Aufruf der Funktion:
$ergebnis = findepfad($parentid);
return $ergebnis.'/'.$verzeichnisname;
}
}
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rekursive Funktion + Array Funjoy PHP für Fortgeschrittene und Experten 1 23.01.2006 12:23:30
Formularwerte einer Funktion übergeben? wemi PHP für Fortgeschrittene und Experten 6 15.02.2005 08:59:04
Callback Funktion? Funjoy PHP für Fortgeschrittene und Experten 2 31.12.2004 09:52:40
Fehler in Funktion Wauzy PHP für Fortgeschrittene und Experten 2 02.12.2003 18:17:28
rekursive funktion ( baumstruktur sortieren ) Redoc PHP für Fortgeschrittene und Experten 3 10.10.2003 14:16:53


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:56:56 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt