Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

php - Progi rabatowe w sklepie internetowym

junioro85 23 Paź 2012 18:36 912 6
  • #1 23 Paź 2012 18:36
    junioro85
    Poziom 9  

    Witajcie,
    Chciałbym w swoim sklepie internetowym zrobić zakładkę rabaty, tj. ustalam sobie progi: powyżej 500 - 5% rabatu, powyżej 1000 - 10% itp,
    Moja tablica wygląda następująco:
    Array ( [500.00] => 5 ) Array ( [1000.00] => 10 ) Array ( [2000.00] => 20 ) Array ( [3000.00] => 30 )
    Nie miałbym problemu gdyby wyglądała tak:
    $rabat = array('500-1000'=>'5','1001-2000'=>'10');
    Wtedy mamy wartość dolną i górną i sprawa jest jasna.
    Jak rozwiązać problem kiedy mamy "powyżej" jakiejś kwoty? Powyżej 500 jest jasne, ale przecież powyżej 1000 to też powyżej 500..
    Z góry dzięki za podpowiedź..

    0 6
  • #2 23 Paź 2012 18:48
    Dżyszla
    Poziom 42  

    Źle zaprojektowałeś tablicę. Nie ma szansy przeszukania takiej struktury. Winna wyglądać np tak:

    Kod: php
    Zaloguj się, aby zobaczyć kod

    Następnie wystarczy proste wyszukiwanie binarne, lub w ostateczności nawet liniowe:
    Kod: php
    Zaloguj się, aby zobaczyć kod

    0
  • #3 23 Paź 2012 19:59
    junioro85
    Poziom 9  

    Dziękuję za odpowiedź. Bardzo mi pomogłeś. Jeszcze mam jeden problem, mianowicie progów mam kilka i dla każdego mam status, niestety po odznaczeniu statusu przy jakiejś kwocie nie liczy w ogóle albo liczy jakby był status..

    0
  • #5 23 Paź 2012 20:11
    junioro85
    Poziom 9  

    Mam progi: powyżej 500, powyżej 1000, powyżej 2000, powyżej 3000, odznaczam status dla powyżej 2000 czyli nie mam dla niego aktualnie rabatu. Powinno mi liczyć dla kwot powyżej 2000 rabat przydzielony dla kwot powyżej 1000.

    0
  • #6 23 Paź 2012 21:03
    Dżyszla
    Poziom 42  

    A nie wystarczy zmienić rabatu na taki sam? Albo dołożenie kolejnego wymiaru $rabaty[$i]['aktywny'], którego pominiesz przy wyszukiwaniu liniowym.

    A skoro tak chcesz manipulować - czemu tego nie zrobić na bazie danych? Wówczas proste zapytanie pozwoli Ci pobrać wynik:

    Kod: SQL
    Zaloguj się, aby zobaczyć kod

    0
  • #7 23 Paź 2012 23:54
    junioro85
    Poziom 9  

    Cała strona jest na plikach płaskich. Teraz wszystko działa, bardzo dziękuję.

    0