Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: sql befehl p_model zurücksetzen

    satriani

    • Mitglied
    • Beiträge: 186
    sql befehl p_model zurücksetzen
    am: 11. Januar 2016, 22:43:59
    hallo,

    habe schon gegooglet aber nichts gefunden. ich habe folgendes problem: ich möchte mit einem sql befehl das alle felder "p_model" zurücksetzen und dann beginnen bei einem wert (beispielsweise 1000) pro tabellenzeile in das feld "p_model" und dann automatisch hochzählen +1  . wer hätte den evtl. den passenden sql befehl. shop-version 1.0.6.

    vielen lieben dank im voraus.

    lg

    satriani

    Linkback: https://www.modified-shop.org/forum/index.php?topic=34161.0

    Neo-drexx

    • Frisch an Board
    • Beiträge: 93
    • Geschlecht:
    Re: sql befehl p_model zurücksetzen
    Antwort #1 am: 12. Januar 2016, 01:30:51

    satriani

    • Mitglied
    • Beiträge: 186
    Re: sql befehl p_model zurücksetzen
    Antwort #2 am: 12. Januar 2016, 08:13:43
    danke, ich werde es mir ansehen.

    lg

    satriani

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: sql befehl p_model zurücksetzen
    Antwort #3 am: 12. Januar 2016, 09:24:50
    Code: PHP  [Auswählen]
    <?php
    include('includes/application_top.php');
    // get products
    $sql="SELECT products_id,products_subtitle FROM products";
    $result = xtc_db_query($sql);
    $products = Array();
    while($row = mysql_fetch_assoc($result)){
            $products[] = $row;
    }

    $products_model = 1000;

    foreach ($products as $product) {
            $updatewhere = "products_id = '". (int)$product['products_id'] ."'";
            $data['products_model'] = $products_model;
            xtc_db_perform('products',$data , 'update', $updatewhere);
            $products_model++;
    }
    ?>

    Einmal im Shoproot laufen lassen .... dann löschen.

    Neo-drexx

    • Frisch an Board
    • Beiträge: 93
    • Geschlecht:
    Re: sql befehl p_model zurücksetzen
    Antwort #4 am: 12. Januar 2016, 09:42:09
    Code: SQL  [Auswählen]
    SET @c:=0;
    UPDATE products
    SET products_model = (SELECT @c:=@c+1)
    ORDER BY products_id ASC;

    satriani

    • Mitglied
    • Beiträge: 186
    Re: sql befehl p_model zurücksetzen
    Antwort #5 am: 12. Januar 2016, 10:12:47
    vielen herzlichen dank, ihr seid topp. ist das schlimm, wenn man das öfters macht ? warum stehen aber bei einer exportierten produktetabelle (wenn man die produkte in der admin angelegt hat) bei p_model keine wert drin.

    es kommt ja häufiger vor, dass produkte über eine tabelle, die manuell angelegt wurde importiert werden. ein saubere "auflistung" von p_model wäre wünschenswert.

    lg

    satriani

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: sql befehl p_model zurücksetzen
    Antwort #6 am: 12. Januar 2016, 10:54:43
    Wenn Du die Artikel manuell anlegst, musst du das Feld füllen:
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Man kann auch eine Logik einbauen wie z.B.
    $products_model = $products_id + 1000;
    Und das in dem Formular automatisch als vorgegebenen Wert eintragen lassen.

    satriani

    • Mitglied
    • Beiträge: 186
    Re: sql befehl p_model zurücksetzen
    Antwort #7 am: 12. Januar 2016, 11:12:37
    hallo neo-drexx,

    habe deine sql abfrage versucht, bekomme beim durchlauf diese fehlermeldung:

    ========>
    SET @c:=0;# MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze).

    UPDATE products
    SET products_model = (SELECT @c:=@c+1)
    ORDER BY products_id ASC;# 3 Datensätze betroffen.
    <========

    keine ahnung bei 3 datensätzen hat´s funktoniert

    lg und schonmal vielen dank.

    satriani

    Neo-drexx

    • Frisch an Board
    • Beiträge: 93
    • Geschlecht:
    Re: sql befehl p_model zurücksetzen
    Antwort #8 am: 12. Januar 2016, 11:41:35
    Hast du zufällig nur drei Datensätze? Habe die Abfrage bei mir mit 3500 Datensätzen erfolgreich getestet.
    Eine kleine Frage habe ich aber auch: Warum willst du all deine ArtikelNrn ändern? Ich war ja immer der Meinung das diese für immer und ewig gleich bleiben sollten :D

    satriani

    • Mitglied
    • Beiträge: 186
    Re: sql befehl p_model zurücksetzen
    Antwort #9 am: 12. Januar 2016, 12:01:05
    danke für die antwort. ganz einfach, es gibt ja 2 möglichkeiten produkte einzupflegen.

    1) über die administration (hier werden  aber keine p_model werte erstellt, felder bleiben leer. sieht man beim export.

    2) über tabellen, die manuell gefüllt wurden. hier wird ja nicht importiert wenn keine modellnummer vorhanden ist.

    durch diese umstände ist das problem ja schon gegeben.

    das ist eigentlich der einzige grund.

    lg

    satriani

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: sql befehl p_model zurücksetzen
    Antwort #10 am: 12. Januar 2016, 12:10:09
    Zu 1) Schau Dir den Screenshot an! Wenn Du keine Artikelnummer vergibst, wird keine eingetragen. Wenn Du eine vergibst, taucht die auch beim Export auf.

    Artikelnummer === products_model

    satriani

    • Mitglied
    • Beiträge: 186
    Re: sql befehl p_model zurücksetzen
    Antwort #11 am: 12. Januar 2016, 12:14:20
    danke bonsai,

    ja das weiss ich ja. aber warum gibt es dann die möglichkeit einen artikel anzulegen ohne artikelnummer. wenn dann ein import eben ohne artikelnummer NICHT funktoniert ?

    erschließt sich mir nicht ganz. das ist doch widersprüchlich.

    lg

    satriani

    Fakrae

    • Viel Schreiber
    • Beiträge: 997
    Re: sql befehl p_model zurücksetzen
    Antwort #12 am: 12. Januar 2016, 12:37:05
    Im Shop ist die Artikelnummer die "Schnittstelle" nach außen hin. Das ist der Punkt an dem externe Programme angreifen sollen, deswegen muss das eben gesetzt sein.
    Die ArtikelID, die intern im Shop vergeben wird ist eigentlich nur im Shop selbst eine ID für das Shopsystem - also nicht für eine externe Verwaltung - der Shop selbst brauchst also die Artikelnummer auch nicht, nur die ID.

    Man KANN natürlich die Sachen so umschreiben, dass die ID auch die Artikelnummer ist, aber die ID ist (glaube ich) ein Autoincrement-Feld in der Datenbank und ist deshalb beim Import nur schwer zu belegen (bzw nur mit zusätzlicher Logik)

    Kurz gesagt: Das hat technische Gründe :D

    satriani

    • Mitglied
    • Beiträge: 186
    Re: sql befehl p_model zurücksetzen
    Antwort #13 am: 12. Januar 2016, 12:44:06
    hallo,

    super, danke für die plausible erklärung.

    lg

    satriani

    Neo-drexx

    • Frisch an Board
    • Beiträge: 93
    • Geschlecht:
    Re: sql befehl p_model zurücksetzen
    Antwort #14 am: 12. Januar 2016, 17:27:21
    Vielleicht ist es ja auch kein Pflichtfeld weil man nicht davon ausgegangen ist das jemand diese nicht angeben würde :)
    2 Antworten
    1658 Aufrufe
    28. März 2018, 10:39:58 von sgnutzer
    12 Antworten
    8976 Aufrufe
    15. Juli 2010, 12:37:41 von karla
    5 Antworten
    2375 Aufrufe
    07. Juli 2017, 11:28:03 von FS72
               
    anything