problem mit preisberechnung

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

  • problem mit preisberechnung

    ich hab da folgendes Problem oder auch nur ein tippfehler ?

    Ich habe 3 Werte
    Höhe, Breite und Typ
    an hand dieser drei eingangswerte soll ein preis berechnet werden es gibt 8 mögliche preise.

    hier mal der von mir bisher geschriebene code ... (funzt ned)
    PHP-Code:
    if (article_get_field('Höhe') < 600){
    article_set_field('HIDE_ORDERBUTTON'TRUE);
    article_set_field('hint''Bitte eine Höhe von 600-2500mm Angeben!');
    }
    elseif (
    article_get_field('Breite') < 400){
    article_set_field('HIDE_ORDERBUTTON'TRUE);
    article_set_field('hint''Bitte eine Breite von 400-2700mm Angeben!');
    }
    elseif (
    article_get_field('Höhe') > 2500){
    article_set_field('HIDE_ORDERBUTTON'TRUE);
    article_set_field('hint''Bitte eine Breite von 400-2700mm Angeben!');
    }
    elseif (
    article_get_field('Breite') > 2700){
    article_set_field('HIDE_ORDERBUTTON'TRUE);
    article_set_field('hint''Bitte eine Breite von 400-2700mm Angeben!');
    }
    if ((
    article_get_field('Höhe') <= 1900)
    and (
    article_get_field('Breite') <= 1700)
    and (
    article_get_field('Lamellenart') == 'Kunststoff')){
           
    article_set_field('Price'249.00);
           }
    elseif ((
    article_get_field('Höhe') <= 1900)
    and (
    article_get_field('Breite') <= 1700)
    and (
    article_get_field('Lamellenart') == 'Aluminium')){
           
    article_set_field('Price'279.00);
           }
    elseif ((
    article_get_field('Höhe') <= 1900)
    and (
    article_get_field('Breite') >= 1701)
    and (
    article_get_field('Lamellenart') == 'Kunststoff')){
    article_set_field('HIDE_ORDERBUTTON'TRUE);
    article_set_field('hint''Kunststoff-Lamellen nur bis 1700mm Breite möglich!');
    }
    elseif ((
    article_get_field('Höhe') <= 1900)
    and (
    article_get_field('Breite') >= 1701)
    and (
    article_get_field('Lamellenart') == 'Aluminium')){
           
    article_set_field('Price'343.00);
           }
    elseif ((
    article_get_field('Höhe') >= 1901)
    and (
    article_get_field('Breite') <= 1700)
    and (
    article_get_field('Lamellenart') == 'Kunststoff')){
           
    article_set_field('Price'286.00);
           }
    elseif ((
    article_get_field('Höhe') >= 1901)
    and (
    article_get_field('Breite') <= 1700)
    and (
    article_get_field('Lamellenart') == 'Aluminium')){
           
    article_set_field('Price'343.00);
           }
    elseif ((
    article_get_field('Höhe') >= 1901)
    and (
    article_get_field('Breite') >= 1701)
    and (
    article_get_field('Lamellenart') == 'Kunststoff')){
    article_set_field('HIDE_ORDERBUTTON'TRUE);
    article_set_field('hint''Kunststoff-Lamellen nur bis 1700mm Breite möglich!');
           }
    elseif ((
    article_get_field('Höhe') >= 1901)
    and (
    article_get_field('Breite') >= 1701)
    and (
    article_get_field('Lamellenart') == 'Aluminium'){
           
    article_set_field('Price'477.00));
           } 
    irgendwas funzt da nicht richtig ... Ich hab mir des schon mit mehreren leuten angeschaut und wir können nix finden. laut shopsupport soll des mit 'and' so gehen ?!?

    ich hoffe es kann jemand helfen denn ich weiss ned weiter.

    mfg Kater
    Zuletzt geändert von ChaoZKater; 18.02.2005, 14:32.

  • #2
    Was läuft denn nicht rund?

    Also ein Syntaxfehler ist es nicht oder wie?
    Überdenke vielleicht mal deine Logik. Ohne dass du hier sagst wo es genau hakt, kann dir wohl niemand weiterhelfen.
    http://hantschel.info

    Kommentar


    • #3
      hm sicher das das eine Feld auch
      Code:
      H&ouml;he
      heißt und nicht
      [code]Höhe[/quote]

      Arbeitest du mit einem Editor, der das automatisch verändert (Dreamweaver etc.).
      visit bepeppered.net

      Kommentar


      • #4
        öhm .-.. vergessen sorry ...

        also wenn ich diese rule im 1und1 shop als artikelrule eingebe sagt der das da irgendwo ein fehler ist .. leider ohne angabe der zeile und auch nicht was für ein fehler ...

        Kommentar


        • #5
          Original geschrieben von cag-live
          hm sicher das das eine Feld auch
          Code:
          H&ouml;he
          heißt und nicht
          [code]Höhe


          Arbeitest du mit einem Editor, der das automatisch verändert (Dreamweaver etc.).
          [/QUOTE]

          das feld heißt 'Höhe'
          der shop akzeptiert auch umlaute ... nur hat der des vorhin falsch kopiert

          und ich schreibe alles auch websites nur im Phase 5

          Kommentar


          • #6
            das ist ja eine fürchterliche redundanz.
            PHP-Code:
            $breite article_get_field('Breite'); //etc 
            schafft übersicht.

            switch-konstrukt schafft auch übersicht.

            vielleicht sieht man dann den fehler.
            OffTopic:
            1und1 scheint ja tolle shops anzubieten

            Kommentar


            • #7
              des muss leider so heissen weil des direkt als shoprule intern eingefügt wird ...


              öh switch construkt ???
              was davon gehört hab ich schon ... aber wie macht man des ?

              bin erst seit kurzer zeit in php unterwegs ..

              mfg Kater

              OffTopic:
              so toll sind se ned ... und ich privat würd mir da keinen holen ...

              Kommentar


              • #8
                Folgendermaßen:
                PHP-Code:
                switch($variable)
                {
                  case 
                "wert 1":
                    
                // das macht die Variable wenn sie "wert 1" wird
                    
                break;
                  case 
                "wert 2":
                    
                // das macht die Variable wenn sie "wert 2" wird
                    
                break;
                  case 
                1:
                    
                // das macht die Variable wenn sie 1 wird
                    
                break;
                  case default:
                    
                // das macht die Variable wenn nichts von oben zutrifft

                visit bepeppered.net

                Kommentar


                • #9
                  sieht wirklich besser aus ....

                  wird aber laut liste von 1und1 shops ned unterstützt ... (was fürn zufall...)

                  das dumme ist das ich keine fehlerbeschreibung bekomme und der typ vom supprt hat nicht wirklich en plan was ich von ihm möcht ...
                  vllt hat ja hier jemand ne einfachere lösung für des ganze ...

                  ............................................................Breite
                  ............................................400 - 1700.............1701 - 2700

                  Höhe....600 - 1900...Alu...........279..........................343
                  ...............................PVC.......249........................N.A

                  Höhe...1901 - 2500...Alu...........343..........................477
                  ...............................PVC........286........................N.A


                  des is die grundlage für den artikel ...
                  vllt kann jemand damit was anfangen ?

                  mfg Kater
                  Zuletzt geändert von ChaoZKater; 18.02.2005, 15:29.

                  Kommentar


                  • #10
                    hmm nach weiterem durchschauen ist mir aufgefalle das es evtl an den Operatoren <= und >= liegen könnte ... was kann man denn da alternativ nehmen ???

                    Kommentar


                    • #11
                      eher nicht.

                      aber da keiner von den forumbesucher vermutlich das glück hat, mit einem 1und1-shop zu arbeiten kann ich nur empfehlen, schrittweise zu debuggen.

                      z.b. alles rausnehmen, damit es funktioniert und dann schritt für schritt eine bedingung nach der anderen hinzuzufügen.

                      Kommentar


                      • #12
                        jep, bzw. zu kommentieren.
                        visit bepeppered.net

                        Kommentar


                        • #13
                          hab ich mal gemacht ...

                          der fehler liegt demnach irgendwo in der letzten rule

                          PHP-Code:
                          elseif ((article_get_field('Höhe') >= 1901)
                          and (
                          article_get_field('Breite') >= 1701)
                          and (
                          article_get_field('Lamellenart') == 'Aluminium'){
                                 
                          article_set_field('Price'477.00));
                                 } 

                          Kommentar


                          • #14
                            check' mal die schließenden klammern

                            Kommentar


                            • #15
                              jep ich seh ihn. änder mal
                              PHP-Code:
                              elseif ((article_get_field('Höhe') >= 1901)
                              and (
                              article_get_field('Breite') >= 1701)
                              and (
                              article_get_field('Lamellenart') == 'Aluminium'){
                                     
                              article_set_field('Price'477.00));
                                     } 
                              in
                              PHP-Code:
                              elseif ((article_get_field('Höhe') >= 1901)
                              and (
                              article_get_field('Breite') >= 1701)
                              and (
                              article_get_field('Lamellenart') == 'Aluminium')){
                                     
                              article_set_field('Price'477.00);
                                     } 
                              und achte auf die Klammersetzung.
                              visit bepeppered.net

                              Kommentar

                              Lädt...
                              X