php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.02.2006, 10:39  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 184
PHP-Kenntnisse:
Anfänger
GELight sorgt für eine eindrucksvolle AtmosphäreGELight sorgt für eine eindrucksvolle Atmosphäre
GELight eine Nachricht über ICQ schicken GELight eine Nachricht über MSN schicken
Standard sicher löschen

Hallo alle zusammen,

Ist immer erstaunlich, wie sich die Problemchen so nacheinander anhäufen, wenn man auf ein bestimmtes Ziel hinarbeitet... Okay aber nun zum Problem.

Wie lösche ich in diesem Fall sicher?
Ich habe einen Termineintrag in meiner DB. Jeder dieser Einträge "kann" bis zu 2 Bilder beinhalten, die mit auf dem Server hochgeladen werden und mit im Termineintrag gespeichert sind (also die verknüpfung). Will ich nun einen der Termine löschen, dann lösche ich diesen eintrag anhand der ID. Woweit ist das kein Problem. Das Problem sind die Bilder.
Lösche ich nun den Termin und es geht beim löschen der Bilder oder des Bildes etwas schief, dann hätte/ habe ich auf meinem Server 1 oder 2 tote Bilder liegen, die nirgends zugewiesen sind.

Wie könnte ich das am einfachsten sicherstellen, dass auch wirklich die Bilder gelöscht sind, bevor ich den termin lösche?
Hoffe ich hab mich gut ausgedrückt.

Mario
GELight ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.02.2006, 10:47  
Matthias959
Gast
 
Beiträge: n/a
Standard

Indem du zuerst die Bilder löscht und nur wenn das erfolgreich geklappt hat löscht du den Termin aus der DB.

Alternativ könntest du auch per Cron Job ein Skript aufrufen, dass alle Bilder aus der DB liest, mit den Bildern auf dem Server vergleicht und dann alle die nicht in der DB sind löscht.

Gruß
Matthias
 
Alt 25.02.2006, 11:06  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 184
PHP-Kenntnisse:
Anfänger
GELight sorgt für eine eindrucksvolle AtmosphäreGELight sorgt für eine eindrucksvolle Atmosphäre
GELight eine Nachricht über ICQ schicken GELight eine Nachricht über MSN schicken
Standard

Erst die Bilder und erst danach den Termin. Genau das dacht ich mir auch schon.
Vielleicht liegts ja am Samstag oder dass ich die letzte Zeit etwas zu viel und lange dran gesessen habe aber irgendwie hab ich das Problem genau diese Abfrage hinzubekommen. Mit 1 Bild ist das nicht das Problem. Wie mach ichs aber bei 2 Bildern, wo ja dennoch nur 1 Termin besteht.

Bei einem Bild hätte ich gesagt:

WENN bild1 gelöscht DANN termin löschen
WENN termin gelöscht DANN "termin wurde erfolgreich gelöscht"

Wie würde das ganze am besten aussehen, wenn 2 bilder gelöscht werden müssen?
Es sind ja nicht immer 2 sondern kann auch mal nur eins gespeichert sein.
Sorry.. bin gerade irgendwie nicht so recht flexibel am heutigen Samstag.

Mario
GELight ist offline  
Alt 25.02.2006, 12:23  
Gast
 
Beiträge: n/a
Standard

Zitat:
Wie würde das ganze am besten aussehen, wenn 2 bilder gelöscht werden müssen?
Hmm, fragst du nicht ab ob die Bilder vorhanden sind ?
Verstehe deine Frage garnicht.
 
Alt 25.02.2006, 14:36  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 184
PHP-Kenntnisse:
Anfänger
GELight sorgt für eine eindrucksvolle AtmosphäreGELight sorgt für eine eindrucksvolle Atmosphäre
GELight eine Nachricht über ICQ schicken GELight eine Nachricht über MSN schicken
Standard

Ich habs jetzt so gel�st, dass es geht.
Eigentlich h�tte ich es gern NOCH dynamischer gel�st, damit ich das ganze globaler auch f�r andere Tabellen nutzen kann.

Derzeit hab ichs erstmal so gel�st:

Code:
$result = "SELECT `id`, `eventbanner`, `veranstbild` FROM `tabelle` WHERE id='".$_POST["id"]."' LIMIT 1";
$result = result ( $result, 1 ); // meine eigene Funktion die den query ausf�hrt
$termin_daten = mysql_fetch_array ( $result );

if ( $termin_daten["eventbanner"] ) $bilder[] = $termin_daten["eventbanner"];
if ( $termin_daten["veranstbild"] ) $bilder[] = $termin_daten["veranstbild"];
$anzahl = count ( $bilder );

for ( $i=0; $i<=count ( $bilder ) -1; $i++ )
{
	if ( unlink( $pfad.$bilder[$i] ) ) 
	{
		echo $bilder[$i]." wurde gel�scht.
";
		$zaehler++;
	}
}

if ( $zaehler == $anzahl )
{
	$result = "DELETE FROM `tabelle` WHERE id='".$termin_daten["id"]."' LIMIT 1";
	$result = result ( $result, 1 );
	if ( $result )
	{
		echo "Termineintrag wurde erfolgreich gel�scht.
";
		?><meta http-equiv='refresh' content='0; URL=index.php'><?php
	}
}
Die 2 Zeilen, wo ich abfrage, ob das bannerbild oder das veranstaltungsbild auch in der db gespeichert sind, h�tte ich auch irgendwie gern dynamisch abgefragt.
Sprich... es w�re sch�n, wenn ich die ganze Tabelle nach eingetragenen Bildern durchsuchen k�nnte um diese dann wiederum in mein kleines $bilder array speichern zu k�nnen. Das $bilder array nutze ich um die anzahl der wirlich eingetragenen Bilder herauszubekommen, da ich ja sp�ter wieder �ber eine schleife das ganze l�schen lasse.

Wenn ihr allerdings eine wesentlich angenehmere oder vielleicht auch sicherere L�sung oder Ansatz f�r mich h�ttet, dann w�rs nat�rlich auch super.

Mario...
GELight ist offline  
 


Themen-Optionen
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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bilder sicher löschen, php anzahl bilder löschen cronjob

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.