ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 24-05-2005, 10:36
snoese
 Newbie
Links : Onlinestatus : snoese ist offline
Registriert seit: Jan 2005
Ort: Münster, Germany
Beiträge: 20
snoese ist zur Zeit noch ein unbeschriebenes Blatt
Standard Löschen von Projekten u. Unterprojekten

morgen allerseits,

ich habe ein kleines Projekt-Tool gebastelt mit dem ganz einfache
Projekte angelgt werden können. Diese können wieder Unterprojekte
bekommen. Läuft alles über eine Tabelle in einer MySQL-DB. Hauptprojekte ahben gleiche UID und Vater-ID. Unterprojekte bekommen (logisch) Vater-ID des Hauptprojektes.

Wenn ich ein Projekt löschen willl sollen das Projekt und alle folgenden
Unterprojekte gelöscht werden.

Kann mir jemand einen Ansatz für die Lösung dieses Problems geben,
oder einen Link wo Ähnliches beschrieben wird?
(in Forumsuche noch nix gefunden)

Gruß
snoese
Mit Zitat antworten
  #2 (permalink)  
Alt 24-05-2005, 10:45
hydrococcus
 Member
Links : Onlinestatus : hydrococcus ist offline
Registriert seit: Jun 2003
Beiträge: 425
hydrococcus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
mysql_query("DELETE * FROM tabelle WHERE id = '$var'"); 
__________________

Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

Mit Zitat antworten
  #3 (permalink)  
Alt 24-05-2005, 10:47
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Hey ropp, hinne riwwer unn wirrer zuricke!
Beiträge: 1.602
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich glaub du brauchst eher das hier.


DELETE mit LEFT JOIN

[MySQL 4.1] Multi-Delete löscht nicht!
__________________
so long, der-p | 72dpi-club

Microsoft IE-Manager Dean Hachamovitch bei der Vorführung des IE7 Beta Preview 2 am 20.3.2006:
"Wir hatten mit IE ganz offensichtlich was verschlafen."
Mit Zitat antworten
  #4 (permalink)  
Alt 24-05-2005, 10:58
snoese
 Newbie
Links : Onlinestatus : snoese ist offline
Registriert seit: Jan 2005
Ort: Münster, Germany
Beiträge: 20
snoese ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OK,

ich glaube ich habe vorhin nicht ganz sauber formuliert.
Das Problem liegt nicht am Löschen selber, sondern an der
Verschachtelung der Projekte.
Sind alles 1:n Verschachtelungen.

d.h. ich weiß also nie wie viele Unterprojekte das zu löschende
Projekt hat und wie viele diese wieder haben usw.

warscheinlich brauch ich da ne schleife oder so. bin aber nicht so
sicher in PHP. deshalb die frage nach dem ansatz. wenn ich den
grundaufbau hab, krieg ich den rest wohl hin...

snoese
Mit Zitat antworten
  #5 (permalink)  
Alt 24-05-2005, 11:27
Hoschi0815
 Member
Links : Onlinestatus : Hoschi0815 ist offline
Registriert seit: Jan 2004
Beiträge: 255
Hoschi0815 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie wäre es denn mit einer rekursiven Funktion, der du immer die aktuelle parent_id übergibst und alle child Einträge eben dieser löschst. Nach dem Prinzip lösche ich Menüpunkte aus meiner Navigation.
Ansonsten poste doch mal den Aufbau deiner Datanbanktabellen.
Mit Zitat antworten
  #6 (permalink)  
Alt 24-05-2005, 11:41
snoese
 Newbie
Links : Onlinestatus : snoese ist offline
Registriert seit: Jan 2005
Ort: Münster, Germany
Beiträge: 20
snoese ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Hoschi0815
Wie wäre es denn mit einer rekursiven Funktion, der du immer die aktuelle parent_id übergibst und alle child Einträge eben dieser löschst. Nach dem Prinzip lösche ich Menüpunkte aus meiner Navigation.
Ansonsten poste doch mal den Aufbau deiner Datanbanktabellen.
... rekursive Funktion sorry...

ich glaube du meinst genau was ich mir vorgestellt habe.

wie sieht das als code aus?
kannste das wohl vom schema posten?

DB-Tabelle ist ganz einfach:

Tabelle projekte:
---------------------------------------------------------------------------------
`projekt_id` smallint(5) unsigned NOT NULL auto_increment,
`vater` smallint(5) unsigned default NULL,
`titel` varchar(25) NOT NULL default '-Titel-',
`ersteller` varchar(12) NOT NULL default '',
`start` datetime NOT NULL default '0000-00-00 00:00:00',
`ende_soll` datetime default NULL,
`ende_ist` datetime default '0000-00-00 00:00:00',
`bearbeiter` varchar(255) default NULL,
`beschreibung` text,
`priority` tinyint(3) unsigned NOT NULL default '1',
`fortschritt` varchar(4) NOT NULL default '0',
PRIMARY KEY (`projekt_id`),
KEY `titel` (`titel`)
----------------------------------------------------------------------------------

gruß
snoese
Mit Zitat antworten
  #7 (permalink)  
Alt 24-05-2005, 12:14
Hoschi0815
 Member
Links : Onlinestatus : Hoschi0815 ist offline
Registriert seit: Jan 2004
Beiträge: 255
Hoschi0815 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ungefähr so sollte die funktion bei dir aussehen:

PHP-Code:
function loesche_projekt($projekt_id){

$sql='SELECT * FROM tbl_projekte WHERE vater='.$projekt_id.'';
$query=mysql_query($sql) OR DIE (mysql_error());
$num=mysql_num_rows($query);

while(
$row=mysql_fetch_array($query))
     {
     
$projekte[]=$row;
     }

for(
$i=0;$i<$num;$i++)
   {
   if(
$projekte[$i]['projekt_id']!="")
     {
     
$sql_delete='DELETE FROM projekte WHERE projekt_id='.$projekte[$i]['projekt_id'].'';
     
$query_delete=mysql_query($sql_delete) OR DIE (mysql_error());
     
loesche_projekt($projekte[$i]['projekt_id'];  
// Funktion verweist auf sich selbst = Rekusion
     
}
    else { echo 
"Kein Unterprojekt vorhanden";}
   }

Aber ich warne dich schon mal vor, wenn ich hier im Forum Code poste schlagen die meisten nur die Hände über den Kopf zusammen

Geändert von Hoschi0815 (24-05-2005 um 12:27 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 24-05-2005, 12:38
snoese
 Newbie
Links : Onlinestatus : snoese ist offline
Registriert seit: Jan 2005
Ort: Münster, Germany
Beiträge: 20
snoese ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Hoschi0815

Danke Dir!

Funktioniert wunderbar. War n kleiner tippfehler drin aber sonst alles
easy.

Wie gesagt, wenn ich nen Ansatz hab kann ich selbst auch n bisslchen
basteln. Aber wenn einer so freundlich ist und direkt mal auf die
DB ne zugeschnittene Funktion postet lacht das Herz.

*Herz lacht*

thx

gruß
snoese

P.S.: Wenn einer noch Verbesserungsvorschläge macht wäre doch super...!
Mit Zitat antworten
  #9 (permalink)  
Alt 24-05-2005, 12:43
Hoschi0815
 Member
Links : Onlinestatus : Hoschi0815 ist offline
Registriert seit: Jan 2004
Beiträge: 255
Hoschi0815 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Na freut mich doch, wenn ich ausser zu fragen auch mal antworten kann
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:47 Uhr.