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: Fehler in /includes/modules/new_attributes_change.php

    joern42

    • Fördermitglied
    • Beiträge: 41
    • Geschlecht:
    Hallo,

    EDIT: nein, das war nicht der Fehler.. please ignore

    Zitat
    in ./includes/modules/new_attributes_change.php Zeile 49 Version 1.05d steht

    Code: PHP  [Auswählen]
        while ($line = xtc_db_fetch_array($result)) {
          $optionsID = $line['products_options_id'];
    }

    Die Schleife ist imho falsch gesetzt, bzw muss bis zum Ende der Datei laufen, sonst werden products_options_values den falschen products_options zugeordnet, wenn diese mehrfach vorhanden sind.

    Seit ich diese Aenderung vorgenommen hab, kann ich alle Optionen korrekt setzen..
    Kann das jemand bestaetigen?

    Viele Gruesse, Joern


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

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Fehler in /includes/modules/new_attributes_change.php
    Antwort #1 am: 17. September 2012, 19:25:55
    Wir haben im Trunk und im kommenden SP1e schon viel verändert. Hast du mal im Trunk Demoshop geprüft? :-?

    Grüße

    Torsten

    joern42

    • Fördermitglied
    • Beiträge: 41
    • Geschlecht:
    Re: Fehler in /includes/modules/new_attributes_change.php
    Antwort #2 am: 18. September 2012, 11:00:09
    Hallo,

    Der Trunk ist z.Zt. leider keine Option fuer uns, aber ich hab jetzt einen Workaround geschrieben, und zwar in der admin./modules/new_attributes_include.php Zeile 135

    Code: PHP  [Auswählen]
     // Print the Current Value Name
                echo '<tr class="' . $rowClass . '">';
                echo '<td class="main">';
                echo '<input type="checkbox" name="optionValues[]" value="' . $current_value_id .'_'.$current_product_option_id . '"' . $CHECKED . '>&nbsp;&nbsp;' . $current_value_name . '&nbsp;&nbsp;'; // 17.09.2012 joern42
     

    d.h. hier wird die Option mit uebergeben in der Form valueId_optionsId, die dann einem explode() in admin/includes/modules/new_attributes_change.php ca. Zeile 45 wieder auseinander genommen wird..

    Code: PHP  [Auswählen]
     // Simple, yet effective.. loop through the selected Option Values.. find the proper price & prefix.. insert.. yadda yadda yadda.
      for ($i = 0; $i < sizeof($_POST['optionValues']); $i++) {
        $ovaluse=explode("_", $_POST['optionValues'][$i]); // joern42 17.09.2012
     //$query = "SELECT * FROM products_options_values_to_products_options where products_options_values_id = '" . $_POST['optionValues'][$i] . "'";
        $query = "SELECT * FROM products_options_values_to_products_options where products_options_values_id = '" . $ovaluse[0] . "'";
     

    Dann hab ich einfach in den nachfolgenden Zeilen $_POST['optionValues'][$i]  durch $ovaluse[0] ersetzt und den SQL INSERT entsprechend geaendert:

    Code: PHP  [Auswählen]
       xtc_db_query("INSERT INTO ".TABLE_PRODUCTS_ATTRIBUTES." (products_id,
                                                                 options_id,
                                                                 options_values_id,
                                                                 options_values_price,
                                                                 price_prefix,
                                                                 attributes_model,
                                                                 attributes_stock,
                                                                 options_values_weight,
                                                                 weight_prefix,
                                                                 sortorder
                                                                 ) VALUES (
                                                                 '"
    . $_POST['current_product_id'] . "',
                                                                 '"
    . $ovaluse[1] . "',
                                                                 '"
    . $ovaluse[0] . "',
                                                                 '"
    . $value_price . "',
                                                                 '"
    . $value_prefix . "',
                                                                 '"
    . $value_model . "',
                                                                 '"
    . $value_stock . "',
                                                                 '"
    . $value_weight . "',
                                                                 '"
    . $value_weight_prefix . "',
                                                                 '"
    .$value_sortorder."'
                                                                 )
                                                                 "
    ) or die(mysql_error());
     

    Scheint zu klappen, bzw. mein Chef sagt, er konnte alle Optionen entsprechend setzen.. ;-)

    Gruesse, Joern

    EDIT:
    ps: das tritt bei uns im System auf, das sehr alt ist und sehr viele Optionen hat.. es kann gut sein, dass unsere Datenbank ("Tutorial: Optionen und Attribute in Datenbank") nicht so ist, wie sie sein sollte... also: bei mir funktionierts, aber keine Garantie, dass es fehlerfrei ist.

    [EDIT Tomcraft 13.01.2020: Link auf eigenes Wiki geändert, da alter Link nicht mehr verfügbar.]
    Shop Hosting
    5 Antworten
    3556 Aufrufe
    21. Juli 2012, 00:23:05 von Gradler
    4 Antworten
    2681 Aufrufe
    17. Februar 2014, 18:22:18 von ShopNix
    10 Antworten
    2420 Aufrufe
    22. November 2017, 13:30:58 von web28