rule rechnet falsch.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • rule rechnet falsch.

    Hallo,

    ich bin bezüglich php ein totaler newbie; deshalb benötige ich eure Hilfe:

    Folgende Rule habe ich bereits, die jedoch nicht ganz korrekt arbeitet:

    if(!article_get_field('preis'))
    article_set_field('preis', article_get_field('price'));

    $preis = article_get_field('preis');
    $taillenweite = article_get_field('Taillenweite');
    $laenge = article_get_field('Länge');

    $endpreis = $preis;
    if($taillenweite < 99)
    $endpreis *= 1;
    if(($taillenweite > 99) AND ($taillenweite < 116))
    $endpreis *= 1.1;
    if($taillenweite > 117)
    $endpreis *= 1.1;

    if($laenge > 80)
    $endpreis *= 1.1;

    article_set_field('price', $endpreis);

    Nach dem ersten durchlauf der Rule ist alles prima, aber sobald man auf "aktualisieren" klickt wird die Berechnung noch mal gestartet. Was auch richtig ist, falsch ist jedoch, daß beim zweiten Durchlauf der vorher ermittelte Wert verwendet wird. Es sollte so sein, daß der Anfangspreis verwendet wird.

    Könnt ihr mir hier bitte irgendwo einen Fehler aufzeigen, an dem das liegen könnte?

    Vielen Dank im Voraus.
    Gruß HJS

  • #2
    Die einzige Zeile wodurch das möglich wäre ist ja
    PHP-Code:
    if(!article_get_field('preis'))
    article_set_field('preis'article_get_field('price')); 
    vielleicht macht er das ja bei jedem Durchlauf? Überprüf das villeicht mal mit nem echo oder so... .

    Kommentar


    • #3
      Bitte? Sorry das verstehe ich im Moment noch nicht.

      Ziel bei der Sache soll sein, daß die rule beim klicken auf aktualisieren einfach den vorher ermittelten Wert löscht und den ursprünglichen Preis für die Neuberechnung verwendet.

      Gruß HJS

      Kommentar


      • #4
        Alles was ich gesagt hab, war dass diese beiden Zeilen die einzigen sind, die ein Benutzen des bereits verrechneten Wertes überhaupt möglich machen. An einer anderen Stelle kann es nicht liegen (es sei denn du hast entsprechende wichtige Zeilen nicht gepostet). Ohne diese Zeilen würde er ja definitv immer den selben Startwert benutzeb. Also überprüf besser mal ob er nicht aus irgend einem grund immer in die if-Abfrage reinrennt, vielleicht in dem du ein echo o.ä. (vielleicht arbeitest du ja auch mit nem debugger) mit in die if-Sache packst. Amen

        Luke

        Kommentar


        • #5
          Luke hat es im grunde ja schon gesagt, es hat wohl etwas mit der ersten if abfrage zu tun.

          Evtl. liegt der Fehler ja in einer fehlenden Klammer oder dergleichen. Du hasst ja sinnvollerweise dein script ohne jegliche (geschweiften) klammern
          und ohne php formatierung gepostet.

          Da wie du sagst beim zweiten durchlauf immer der vorher berechnete verwendet wird, scheint die bedingung ob das feld "preis" leer ist immer erfüllt zu sein und somit holt er den wert also aus dem feld "price" und füllt damit deine erste variable.

          lass dir die werte der variablen vor, in bzw. nach der schleife einmal ausgeben, und du wirst den fehler sicher finden.
          [color=blue]...ich sehe was, was du nicht siehst...und das ist der QUELLTEXT![/color]

          Kommentar

          Lädt...
          X