Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prośba o napisanie bardzo prostego skryptu
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
Nastolatek
Witam. Chciałem prosić o napisanie bardzo prostego skryptu, a mianowicie liczącego opłatę jaką ma wnieść użytkownik za określoną ilość wyświetleń reklamy na mojej stronie. Chodzi o to że wpisuje ilość wyświetleń (w tysiącach), i klika na przycisk Licz.
A skrypt oblicza i wyświetla wynik. Dokładne dane:

Wyświetleń Cena za tysiąc wyświetleń
0-9 999 1zł
10 000-99 000 75gr
100 000-więcej 50gr

W przypadku gdy kwota wykupionej reklamy nie będzie wynosiła 25 zł lub więcej wyświetli się komunikat w którym czarwonym boldem będzie napisane:

Uwaga! Kwota za tą ilość wyświetleń nie przekracza minimalnej kwoty 25 zł! Do kwoty minimalnej brakuje: (tutaj liczba 25zł-kwota zakupu)

Proszę mnie zrozumieć, potrzebuję tego skryptu, nie jestem w stanie nic zaoferować (może jakaś drobna rzecz z dziedziny grafiki komputerowej, bo to moje hobby), a nie znam się na php zbyt dobrze żeby taki skrypt napisać.

P.S ajlepiej gdyby skrypt nie wykonywał żadnych operacji na plikach i bazy danych. Zmiana kwot na jakich liczy odbywała by się na zmianie wartości zmiennej, w której kwota będzie zapisana w postaci groszy (czyli nie 1[zł], a 100[gr]).

Proszę o pomoc, to jest praca na 5 minut dla zdolnego programisty, a ja bardzo potrzebuję tego skryptu. Będę barddzo wdzięczny osobie która poświęci dla mnie trochę swojego cennego czasu.
nospor
Przenoszę na Gieldę ofert
Zajec
Cytat(Nastolatek @ 2006-05-12 20:27:16)
Uwaga! Kwota za tą ilość wyświetleń nie przekracza minimalnej kwoty 25 zł! Do kwoty minimalnej brakuje: (tutaj liczba 25zł-kwota zakupu)
Ktoś mi kiedyś to ładnie wytłumaczył:

Tą książką to możesz w łeb dostać. Pisze się "proszę tę książkę" winksmiley.jpg

Mój skrypt nie obsługuje przedziałów, którym nie są przypisane ceny. Sądzę jednak, że tylko przez pomyłkę nie przypisałeś wartości dla 99'001 - 99'999.

Test on-line: http://zajec.net/koszt

  1. <?php
  2. if (isset($_POST['ilosc']))
  3. {
  4.     $cennik = array (
  5.     '0'=>'1',
  6.     '10000'=>'0.75',
  7.     '100000'=>'0.50'
  8.     );
  9.  
  10.  
  11.     $ilosc = $_POST['ilosc'];
  12.     while (stristr($ilosc, '  '))
  13.     $ilosc = str_replace(' ', '', $ilosc);
  14.  
  15.  
  16.     $cennik  = array_reverse($cennik, true);
  17.     foreach ($cennik as $k => $sztuka)
  18.     if ($ilosc >= $k) break;
  19.     $lacznie = $ilosc*$sztuka;
  20.  
  21.  
  22.     echo 'Zamowiłeś: '.$ilosc.'sztuk<br />';
  23.     echo 'Koszt za sztukę: '.$sztuka.'zł<br />';
  24.     echo 'Łącznie: '.$lacznie.'zł';
  25.  
  26.     if ($lacznie<25)
  27.     echo '<br />Uwaga! Kwota za tę ilość wyświetleń nie przekracza minimalnej kwoty 25zł! Do 
    kwoty minimalnej brakuje '
    .(25-$lacznie).'zł';
  28. }
  29. else
  30. {
  31.     echo '<form action="" method="post"><fieldset>';
  32.     echo '<label>Ilość wyświetleń <input type="text" name="ilosc" /></label>';
  33.     echo '<label><input type="submit" value="Policz" /></label>';
  34.     echo '</fieldset></form>';
  35. }
  36. ?>


Dodano:

1) Pamiętaj o kropkach zamiast przecinków w ułamach w php

2) Pamiętaj, że po wklepaniu ostatniej pozycji cenowej w tablicy "cennik" nie daje się przecinka

3) Dla ładnego forularza proponuję jeszcze
Kod
label {
display: block;
width: 97%;
margin: 0 2% 5px 1%;
text-align: right;
}
input {
margin-left: 2%;
width: 57%;
}
Nastolatek
Dokładnie to o co mi chodziło biggrin.gif

Szacuneczek i uznanie dla Ciebie biggrin.gif

P.S. Masz rację. To była pomyłka, miało być 99 999 a nie 99 000

Aha, i jeszcze jedna poprawka. Twój skrypt wyświetla po wpisaniu "1(czyli 1 tysiak)" 1zł, czyli tyle ile powinno być za ilość. I to jest dobrze. Ale po wpisaniu 10 powinienem otrzymać 75gr, a nie 1 zł(bo to już 10 000 tysięcy). Ale to łatwiutko naprawić winksmiley.jpg
Dzięki za fatygę, będę Twoim dłużnikiem winksmiley.jpg

Dodano:

Style pod wszelkie typy pól formularzy mam opracowane już od dawna wpliku CSS mojej strony winksmiley.jpg Chociaż nie wątpię że to znacznie polepsza czytelność winksmiley.jpg
Zajec
Nie ma sprawy :-)

I faktycznie nie doczytałem, że kwota ma być podawana w tysiącach.
Nastolatek
A mógłbym prosić o modyfikację, gdzie jeśli użytkownik nic nie wpisze wyświetla się sam komunikat: "Nie podałeś liczby wyświetleń!" ? smile.gif
Zajec
Jasne :-) Tym razem już z mnożeniem razy 1000
  1. <?php
  2. if (isset($_POST['ilosc']))
  3. {
  4.     $cennik = array (
  5.     '0'=>'1',
  6.     '10000'=>'0.75',
  7.     '100000'=>'0.50'
  8.     );
  9.  
  10.  
  11.     if (empty($_POST['ilosc']))
  12.     echo 'Nie podałeś liczby wyświetleń!';
  13.     elseif (!is_numeric($_POST['ilosc']))
  14.     echo 'Należy podać liczbę.';
  15.     else
  16.     {
  17.         $ilosc = 1000*$_POST['ilosc'];
  18.         while (stristr($ilosc, '  '))
  19.         $ilosc = str_replace(' ', '', $ilosc);
  20.  
  21.  
  22.         $cennik  = array_reverse($cennik, true);
  23.         foreach ($cennik as $k => $sztuka)
  24.         if ($ilosc >= $k) break;
  25.         $lacznie = $ilosc*$sztuka;
  26.  
  27.  
  28.         echo 'Zamowiłeś: '.$ilosc.'sztuk<br />';
  29.         echo 'Koszt za sztukę: '.$sztuka.'zł<br />';
  30.         echo 'Łącznie: '.$lacznie.'zł';
  31.  
  32.         if ($lacznie<25)
  33.     echo '<br />Uwaga! Kwota za tę ilość wyświetleń nie przekracza minimalnej k
  34. woty 25zł! Do kwoty minimalnej brakuje '.(25-$lacznie).'zł';
  35.     }
  36. }
  37. else
  38. {
  39.     echo '<form action="" method="post"><fieldset>';
  40.     echo '<label>Ilość wyświetleń <input type="text" name="ilosc" /></label>';
  41.     echo '<label><input type="submit" value="Policz" /></label>';
  42.     echo '</fieldset></form>';
  43. }
  44. ?>
Nastolatek
Jeszcze raz wielkie dzięki winksmiley.jpg
Napewno mi się przyda (bo co to za administrator jeśli każe użytkownikom, dzięki którym utrzymuje stronę, przeliczać samodzielnie smile.gif)

Dodano:
Coś jest nie tak. Gdy wpisuję 100 w polu (czyli 100 000 sztuk), w wyniku wyświetla mi się:
Zamówiłeś 100 000 sztuk
Cena za sztukę 0.50
Wartość: 50000zł laugh.gif
A powinno być:
Zamówiłeś 100 000 sztuk
Cena za tysiąc sztuk: 0.50
Wartość: (nie chce mi się liczyć smile.gif)
Jeśłi to nie sprawi problemu proszę o tę drobną modyfikację winksmiley.jpg
Zajec
Em, możesz trochę jaśniej napisać, czego oczekujesz? Dla mnie jest dobrze :-)
Nastolatek
Chodzi dokładnie o to że cena 50 groszy nie za sztukę, ale za 1000 sztuk winksmiley.jpg A to liczy jak za 1 sztukę winksmiley.jpg
Czyli wystarczy cenę za ilosć wyświetleń podzielić na 1000 winksmiley.jpg

Czyli:
Sztuk: 100 000
Cena za 1000 sztuk: 50 groszy
Koszt : 50000 / 1000

I jeśli jeszcze można, to prosiłbym o automatyczne dodawanie spacji między liczby, a mianowicie zamiast 100000 to 100 000, oraz żeby po podliczeniu cena nie wyświetlała się: 0.50zł, tylko 50 groszy winksmiley.jpg

Wiem że dużo wymagam, więc jeśli sprawi to jakiś problem moge oddać ten skrypt do przeróbki do mojego kolegi, który się nim zajmie. Z chęcią obrazu bym go poprosił o taki skrypt, zamiast zawracać głowę nieznajomej osobie, ale obecnie musi się ostro uczyć jeśli chce zdać w liceum winksmiley.jpg
NuLL
Starczy.

Zajec dzieki za to co zrobies smile.gif

...ale lenistwo zupelne tepimy na tym forum.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.