Inaktive Artikel löschen inkl. Bilder via SQL oder so?

Thema wurde von wakesports.ch, 24. Mai 2012 erstellt.

  1. wakesports.ch
    wakesports.ch Mitglied
    Registriert seit:
    28. Juni 2011
    Beiträge:
    17
    Danke erhalten:
    0
    Danke vergeben:
    4
    Weiss jemand, wie ich einfach und bequem sämtliche inaktiven Artikel, inkl. Bilder , Attributen usw. löschen kann(will den Shop mal "aufräumen" von alten Artikelleichen, ohne dass ich jeden einzelnen raussuchen muss?
    Gruss

    Roland
     
  2. Manuel
    Manuel Erfahrener Benutzer
    Registriert seit:
    26. Mai 2011
    Beiträge:
    238
    Danke erhalten:
    18
    Danke vergeben:
    12
    Zuerst einmal eine Grundsatzfrage:
    Was ist für dich eine Leiche? Artikel ohne Bestand, inaktive Artikel o.ä.?
    In folg. Ausführung nehme ich an, dass inaktive Artikel gemeint sind.

    Da die Bilder als physikalische Files auf dem Server liegen, wirste das direkt über die DB bzw. per Abfrage nicht hinbekommen.
    Ohne die Bilder zu löschen kannste so versuchen, die eigentliche Artikeldaten zu löschen:
    Zuerst die Tabelle `products` in `products2` kopieren. Danach
    Code:
    DELETE FROM `XXX` WHERE `products_id` = ANY(SELECT products_id FROM `products2` WHERE `products_status` = 0)
    `XXX` sind dabei die betroffenen Tabellen, die du nacheinander abarbeiten musst. Als letzte Tabelle die `products` angehen, sonst fehlt deine Referenztabelle für die weiteren DELETEs.
    Welche Tabellen du einfügen musst findest du wie im angehängten Bild gezeigt raus. Die Funktion findest du phpmyadmin unter "Suche".

    Da ich selbst keine Eigenschaften nutze, musst du wohl die Verknüpfungen für die DELETEs der Attribut-Tabellen selbst herstellen.
    Ich tippe auf die Tabellen `products_attributes`, `products_options`, `products_options_values` und `products_options_values_to_products_options`. Einfach nur analog o.g. Abfrage entsprechend umschreiben.
    Vonder Vorgehensweise würde ich zuerst die Eigenschaften löschen, bevor ich an die eigentlichen Artikeldaten gehe.

    Vorher bitte Backup der DB!

    Zu Bedenken ist dabei, dass auch Artikel gelöscht werden können, die irgendwann vllt. mal von Kunden bestellt worden sind. Demnach fehlen diese Artikel dann in der Historie - sowohl im Backend als auch im Kundenaccount.

    Um diese Artikel beim DELETE auszuschließen, könnte folg. funzen (ungetestet!)
    Code:
    DELETE FROM `XXX` WHERE `products_id` = ANY(SELECT products_id FROM `products` WHERE `products_status` = 0) AND `products_id` NOT IN (SELECT `products_id` FROM `orders_products`)
    Das Löschen direkt über die DB ist also mit Vorsicht zu genießen. Ich mache das eigentlich nur in der Testumgebung.
     

    Anhänge:

  3. wakesports.ch
    wakesports.ch Mitglied
    Registriert seit:
    28. Juni 2011
    Beiträge:
    17
    Danke erhalten:
    0
    Danke vergeben:
    4
    Besten Dank Manuel.

    :)
     
  4. gabro1981
    gabro1981 Neues Mitglied
    Registriert seit:
    27. Juni 2013
    Beiträge:
    3
    Danke erhalten:
    0

    Soweit schön erklärt. Aber wie kriegt man es hin die Bilder zu löschen. Ich denke das diese Frage einige beschäftigt. Nehmen wir es so: Mann betreibt einen Onlineshop und benutzt eine Wawi die soweit alles Pflegt bis auf die Bilder vom Server zu entfernen nachdem die Produkte inaktiv werden. Nach und nach werden die "Folder" immer grösser (Popup Bilder, Tumbnail, Infobilder, OriginalBilder). Es kommen immer neue Bilder hinzu aber die inaktiven (Leichen) werden nicht behandelt. Jetzt muss eine Lösung her. Per SQL wäre es eigentlich am besten per irgendeinen Befehl die Bilder zu grupieren und danach löschen zu können.Wenn das nicht geht wie dann??? Irgendeine Lösung muss es geben. Wegen Artikel selbst kennen wir die Lösung aber wie machen wir es mit sollchen Bilder. Über einen Tipp wären wir sehr dankbar..
     
  5. Anonymous
    Anonymous G-WARD 2015/2016
    Registriert seit:
    20. Februar 2012
    Beiträge:
    9.009
    Danke erhalten:
    1.581
    Danke vergeben:
    1.179
    Willkommen im Forum!

    schau mal hier:
    (Link nur für registrierte Nutzer sichtbar.)
     
  6. barbara
    barbara G-WARD 2014-2020
    Registriert seit:
    14. August 2011
    Beiträge:
    35.632
    Danke erhalten:
    11.352
    Danke vergeben:
    1.614
    Damit kannst Du die meisten Bilder auch aufräumen (nur die Originale nicht)
    (Link nur für registrierte Nutzer sichtbar.)
     
  7. gabro1981
    gabro1981 Neues Mitglied
    Registriert seit:
    27. Juni 2013
    Beiträge:
    3
    Danke erhalten:
    0
    Ich bedanke mich für die schnelle Hilfestellung. Habe das Modul GX2 Bilderpflege installiert und versucht aufzurufen. Leider bekomme Ich, nachdem Ich versuche die Bilder zu ermitteln relativ zugig die folgende meldung:
    ........................................................................................................................................................................
    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, webmaster@shop-mln.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
    .................................................................................................................................................................................

    Ich befürchte das das Script zu schnell aufgibt, warum auch immer ..???
    Die Methode von Barabara habe Ich noch nicht unter die Luppe genommen werde auch gleich versuchen. Aber das mit den Modul scheint mir bessere Methode zu sein( wenn es funktionieren sollte)
     
  8. Dennis (MotivMonster.de)
    Dennis (MotivMonster.de) G-WARD 2013/14/15/16
    Registriert seit:
    22. September 2011
    Beiträge:
    31.212
    Danke erhalten:
    6.223
    Danke vergeben:
    1.108
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Nicht das Script sondern dein Server gibt zu schnell auf :)
    Wenn möglich mal schauen was für eine Laufzeit PHP Scripte bei dir haben. Empfehlung ist 60 sec. viele Billig Webspaces haben nur 10-20 sek.
     
  9. gabro1981
    gabro1981 Neues Mitglied
    Registriert seit:
    27. Juni 2013
    Beiträge:
    3
    Danke erhalten:
    0
    Ich vermute das Ich hierbei nicht machen kann. Besitze zwar einen Rootserver aber momental wird der Shop "Shared" gehostet.
    Umzug ??? Oh mann....Gibt es da eine andere möglichkeit ???
     
  10. Dennis (MotivMonster.de)
    Dennis (MotivMonster.de) G-WARD 2013/14/15/16
    Registriert seit:
    22. September 2011
    Beiträge:
    31.212
    Danke erhalten:
    6.223
    Danke vergeben:
    1.108
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    den Wert für die runtime hochsetzen, wenn root server hast ist das doch kein Thema.