Alle Produkte einer Kategorie prozentual updaten

Thema wurde von Anonymous, 8. August 2022 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Juni 2017
    Beiträge:
    437
    Danke erhalten:
    46
    Danke vergeben:
    72
    Guten Morgen zusammen,

    hat jemand einen SQL Befehl für mich, mit dem ich sämtliche Artikel in einer Kategorie das Feld Prozente updaten kann? Danke im Voraus.

    Gruß Sascha
     
  2. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.699
    Danke erhalten:
    889
    Danke vergeben:
    288
    Das ist nicht ganz so einfach, weil man dazu die Kategorienummer wissen muss.

    Code:
    UPDATE products_to_categories AS ptc
    INNER JOIN products AS p ON ptc.products_id = p.products_id
    SET p.products_price = p.products_price*1.1
    WHERE ptc.categories_id=158;
    Die Kategorienummer findest Du, wenn du die Kategorie im Admin aufrufst und die URL betrachtest:
    /admin/categories.php?cPath=110_158&pID=..

    Im cPath ist das der letzte rechte Wert. Den setzt Du im WHERE-Statement ein.
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Juni 2017
    Beiträge:
    437
    Danke erhalten:
    46
    Danke vergeben:
    72
    #3 Anonymous, 8. August 2022
    Zuletzt bearbeitet: 8. August 2022
    Also wenn ich auf dem Artikel 20% Rabatt geben möchte, dann muss ich folgenden Befehl ausführen?


    UPDATE products_to_categories AS ptc
    INNER JOIN products AS p ON ptc.products_id = p.products_id
    SET p.products_price = p.products_price*1.1
    WHERE ptc.categories_id=158;

    Bei dem Befehl scheint es mir jedoch eher, dass da 10% aufgeschlagen werden wegen dem *1.1

    Ich möchte den Artikel mit 20 % rabattieren ohne den eigentlichen Artikelpreis abzuändern. Sondern nur das Feld Rabatt auf 20% updaten.

    (Link nur für registrierte Nutzer sichtbar.)
     
  4. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Juni 2017
    Beiträge:
    437
    Danke erhalten:
    46
    Danke vergeben:
    72
    Und meine URL Struktur sieht so aus:

    (Link nur für registrierte Nutzer sichtbar.)

    Das wäre dann die dritte Unterkategorie. Muss ich da dann das 1_180_182 wählen oder nur die ID 182 wenn ich nur in der letzten Kategorie updaten möchte?
     
  5. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.699
    Danke erhalten:
    889
    Danke vergeben:
    288
    Das ist was anderes. Dann musst Du Deine Frage deutlicher formulieren.
     
  6. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.699
    Danke erhalten:
    889
    Danke vergeben:
    288
    So sieht das Aus, wenn Du die Kategorie im Admin aufrufst? Das wage ich zu bezweifeln.
     
  7. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Juni 2017
    Beiträge:
    437
    Danke erhalten:
    46
    Danke vergeben:
    72
    Ok. Vielleicht etwas umständlich formuliert. Hatte aber geschrieben, dass ich das Prozente Feld updaten möchte.

    hat jemand einen SQL Befehl für mich, mit dem ich sämtliche Artikel in einer Kategorie das Feld Prozente updaten kann? Danke im Voraus.
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Juni 2017
    Beiträge:
    437
    Danke erhalten:
    46
    Danke vergeben:
    72
    Nein. Im Admin habe ich den Link oben gepostet. Das war im Frontend. ;) Mein Fehler gewesen den ich selbst bemerkt hatte.
     
  9. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Juni 2017
    Beiträge:
    437
    Danke erhalten:
    46
    Danke vergeben:
    72
    Dann wäre das so oder?

    UPDATE products p LEFT JOIN products_to_categories ptc ON p.products_id=ptc.products_id SET p.products_discount_allowed = 20 WHERE ptc.categories_id=XXX
     
  10. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.699
    Danke erhalten:
    889
    Danke vergeben:
    288
    Nein, mach da aus dem LEFT JOIN mal ein INNER JOIN, sonst könnten da einige Artikel zuviel geändert werden.
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    30. Juni 2017
    Beiträge:
    437
    Danke erhalten:
    46
    Danke vergeben:
    72
    Also so, danke:

    UPDATE products p INNER JOIN products_to_categories ptc ON p.products_id=ptc.products_id SET p.products_discount_allowed = 20 WHERE ptc.categories_id=XXX