php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.06.2009, 15:01  
Benutzer
 
Registriert seit: 16.03.2009
Beiträge: 92
SimStar001 ist zur Zeit noch ein unbeschriebenes Blatt
Standard in einer schleife datensätze löschen?

Hallo, ich greife auf meine DB zu und selektiere alle Datensätze in meiner Tabelle.
Danach durchlaufe ich alle Datensätze per For Schleife und prüfe einige Sachen und muss dann ggf. ein paar Datensätze löschen.

Nun ist meine Frage, ob das Löschen irgendwie Auswirkung auf meine Schleife hat?

PHP-Code:
$anfrage "SELECT * FROM Stripdaten";
$ergebnis mysql_query($anfrage);
$anzahl mysql_num_rows($ergebnis);

$LastZugriff 7200;

for (
$i 0;$i $anzahl$i++)
    {
    
mysql_data_seek($ergebnis,$i);
    
$zeile mysql_fetch_row($ergebnis);
    
$Modified $zeile[2];
    if ((
Time() - $Modified) > $LastZugriff)
        {
        
//Datensatz löschen
        
}
    } 
Kann es da jetzt zu Fehlern kommen, sprich nimmt dann automatisch die Länge der tabelle ab oder bleibt der Wert ind $ergebnis aus
PHP-Code:
 $ergebnis mysql_query($anfrage
gleich wie zuvor ermittelt?


Aus Delphi z.b. bei Listen nimmt dann ja automatisch die Länge ab, wenn man einen Eintrag löscht. dass heißt, wenn ich dort dann so verfahren würde, müsste ich entweder noch ne Zusatzprüfung durchführen, ob gerade beim Hochzählen der Zählvariable die Länge der Liste überschritten worden ist.

Muss ich das hier in PHOP auch, oder nicht?


Vielen Dank!
SimStar001 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.06.2009, 15:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Interessante Frage. Aber ich halte das Löschen in der Schleife so oder so für eine schlechte Idee. Du solltest besser in der Schleife die IDs sammeln und ganz zum Schluss eine Query zum DELETE absetzen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.06.2009, 15:14  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Probier es doch aus. Aus dem Stand würde ich sagen, dass das Ergebnis bereits bei PHP vorliegt und daher nicht mehr vom Löschen beeinflußt wird. Da wäre ich mir sogar ziemlich sicher.

Ich würde allerdings die zu löschenden Datensätze in einem Array speichern und dann nach der Schleife gesammelt löschen. Das ist performanter und dein Problem (falls es eins ist) stellt sich garnicht mehr.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.06.2009, 15:20  
Benutzer
 
Registriert seit: 16.03.2009
Beiträge: 92
SimStar001 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für die Antworten, ich denke ich werde es mal nicht drauf ankommen lassen und die zu löschenden IDs in nem Array sammeln und hinterher Löschen!

Danke!
SimStar001 ist offline   Mit Zitat antworten
Alt 21.06.2009, 15:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

@Chrisz: Das war auch mein erster Gedanke, dann habe ich mich aber gefragt, wozu es dann noch den DB-Aufruf *_fetch_* gibt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.06.2009, 15:49  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Wie sonst willst du aus einer Resource ein Ergebnis holen? Kann man ja leicht testen .. hab nur grad keine Lust
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.06.2009, 18:48  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ich hab ne Anwendung laufen mit "SELECT feld1 ... WHERE feld2 = 1"; . In der Schleife werden die einzelnen Zeilen dann be- und verarbeitet, und unter bestimmten Bedingungen wird feld2 dann von 1 auf 0 gekippt.
Dadurch wird nicht die ursprüngliche Selektion beeinflusst. Ich denke, dass man die Feststellung auch auf einen DELETE-Vorgang übertragen darf.
Wolla ist offline   Mit Zitat antworten
Alt 28.06.2009, 11:03  
Erfahrener Benutzer
 
Registriert seit: 09.11.2008
Beiträge: 200
smilla befindet sich auf einem aufstrebenden Ast
Standard

Bei anderen Programmiersprachen, wenn man z.B. eine ListBox durchläuft und dann einen Datensatz löschen will gibt es Probleme. Hier arbeitet man so, dass man von hinten durchläuft und es gibt keine Probleme.

Wenn du nicht mit mysql_data_seek arbeitest sondern mit z.B. mysql_fetch_assoc in einer while Schleife, wirst du keine Probleme haben in einer Schleife zu löschen.
smilla ist offline   Mit Zitat antworten
Antwort


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme mit löschen mehrere gewählter Datensätze (Checkbox) Lapje PHP Tipps 2009 6 21.04.2009 14:13
[Erledigt] Datensätze löschen nach Auswahl aus Formular (checkboxen) asyoulikeit Datenbanken 3 13.06.2008 15:56
Datensätze mittels checkbox löschen Thunderstorm PHP Tipps 2007 6 21.01.2007 20:41
Buttons und Eingabefelder in einer Schleife ? hans_wurst PHP Tipps 2006 3 26.04.2006 15:07
datensätze löschen!! kickz PHP Tipps 2006 12 31.01.2006 23:01
Löschen mehrerer Datensätze funktioniert nicht!? Alpha Centauri Datenbanken 2 27.01.2006 12:00
[Erledigt] While schleife in while schleife = nur ein datensatz?! PHP Tipps 2005-2 9 28.10.2005 12:48
Doppelte Datensätze Verbieten und löschen Cyber Soldier Datenbanken 15 17.10.2005 21:01
Vor dem löschen abfragen ob man wirklich löschen will PHP Tipps 2005-2 1 05.09.2005 11:54
MySQL/PHP: Löschen von Datensätzen ajo_silent PHP Tipps 2005-2 8 03.08.2005 17:00
datensätze aus db löschen lindner PHP Tipps 2004-2 15 07.12.2004 00:10
Datensätze löschen für die kein Eintrag in anderer Tabelle.. robo47 Datenbanken 7 10.11.2004 09:42
Löschen von Datensätze gelingt mir nicht :/ Datenbanken 4 25.09.2004 22:02
Alle Datensätze löschen die älter als 15 Minuten sind Datenbanken 1 14.08.2004 23:36
datensätze nach 30 tagen automatisch löschen Anuschka PHP Tipps 2004 1 21.06.2004 17:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
delphi datensatz löschen, delphi datenbank doppelte datensätze löschen, datensatz löschen delphi, delphi datensätze löschen, delphi checkbox deleten, delphi4 schleifen, while schleife php datensatz löschen, php schleife datenbank löschen, delphi schleife datensatz, for schleife datensätze löschen, delphi alle datensätze löschen, delphi schleife löschen, datensätze per php löschen for i= 1, lösch schleife, php array in schleife löschen, php schleife löschen, schleife datensatz löschen, delphi leeren datensatz löschen, php nach schleife datensatz löschen, delphi lösche arrayelement

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:09 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