Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> Mnożenie liczb v2
Artu123
post 13.12.2008, 14:27:53
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 8.12.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $wygrana = ''.zamieniajkupon($staweczka).''.$_POST['stawka'].'';
  3. ?>


$staweczka to np. 2.5*3.5* a $_POST['stawka'] to np. 2.5 i z tego wychodzi 2.5*3.5*2.5 no ale nie oblicza tego. Na stronie pokazuje sie 2.5*3.5*2.5.

Screen:

Go to the top of the page
+Quote Post
erix
post 13.12.2008, 14:29:59
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A może byś tak to wykonał? Bo na razie, to tylko przypisujesz do zmiennej. Poza tym, nie wiem, co to jest ta Twoja funkcja zamieniajkupon.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Artu123
post 13.12.2008, 14:33:09
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 8.12.2008

Ostrzeżenie: (0%)
-----


funkcja zamieniajkupon zamienia , na .
Go to the top of the page
+Quote Post
dr_bonzo
post 13.12.2008, 14:35:07
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


  1. <?php
  2. echo( "2.5 * 3.5" ); // to jest tylko napis
  3. echo( 2.5 * 3.5 ); // a tutaj mnozysz
  4. ?>


Widzisz roznice?
Albo inaczej to rozwiaz, albo skorzystaj z NIEPOLECANEGO eval()


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Kildyt
post 13.12.2008, 14:36:40
Post #5





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

Ostrzeżenie: (0%)
-----


Rozumiem, że funkcja zmieniajkupon wyświetla jakąś liczbę tak? Chcesz tą liczbę pomnożyć przez $_POST['stawka']? W taki sposób nie da rady.
Ja bym radził zapisać wynik funkcji do zmiennej i tą zmienną pomnożyć przez $_POST['stawka'].

Na przyszłość:
- filtruj dane od użytkownika,
- .''. pomiędzy dwoma zmiennymi jest bezsensowne. Wystarczy sama kropka,
- wpisywanie ''. na początku zmiennej i .'' na końcu jest niepotrzebne.

PS @dr_bonzo echo to nie jest funkcja.

Edit
Nie wiedziałem do czego służy funkcja, więc napisałem trochę głupot. smile.gif Dostosuj się do rady dr_bonzo.

PS2 Na przyszłość dodawaj tagi to tytułów.

Ten post edytował Kildyt 13.12.2008, 14:40:44


--------------------
Go to the top of the page
+Quote Post
darecki
post 13.12.2008, 14:36:59
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 2
Dołączył: 24.08.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Używasz operatora łączenia, a nie mnożenia, zakładając że zmienna POST ma być liczba zmienną przeciekową zrób tak:

$wygrana = zamieniajkupon($staweczka) * ((double) $_POST['stawka']);


--------------------
Copyright ˆ by Darecki Ÿ Wszystkie prawa zastrzeżone
TanioNaRybki.pl
Go to the top of the page
+Quote Post
Artu123
post 13.12.2008, 14:40:53
Post #7





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 8.12.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $wygrana = zamieniajkupon($staweczka) * ((double) $_POST['stawka']);
  3. ?>


Działa to tongue.gif Wielkie dzięki

Edit://

z zamieniajkupon($staweczka) mnoży tylko 1 liczbę. w staweczka mam np. 1.5*2.5 to mnozy 1.5 przez stawke . A nie 1.5 razy 2.5 czyli około 3,5 i to 3,5 przez stawkę.

Ten post edytował Artu123 13.12.2008, 14:50:24
Go to the top of the page
+Quote Post
darecki
post 13.12.2008, 14:54:23
Post #8





Grupa: Zarejestrowani
Postów: 54
Pomógł: 2
Dołączył: 24.08.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


pokaż kod funkcji zamieniajkupon() i przypisanie danych do zmiennej $staweczka

Ten post edytował darecki 13.12.2008, 14:57:45


--------------------
Copyright ˆ by Darecki Ÿ Wszystkie prawa zastrzeżone
TanioNaRybki.pl
Go to the top of the page
+Quote Post
Artu123
post 13.12.2008, 15:01:09
Post #9





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 8.12.2008

Ostrzeżenie: (0%)
-----


Kod
function zamieniajkupon($text)
{
     $text = html_entity_decode($text);
     $szukaj = array(
         ',',
     );
     $zamieniajphp = array(
         '.',
     );
    
     $text = str_replace($szukaj, $zamieniajkupon, $text); // Zamiana znaków z tablic
     return $text;
}


Kod
$zapytanie = mysql_query("SELECT stawka FROM wyniki WHERE user_id='".$id."'");
$staweczka = dbresult($zapytanie,0);


Teraz coś zrobiłem, że nie wiem co biggrin.gif ehehe, dla skryptu 1,65 razy 3 to jest 465

Ten post edytował Artu123 13.12.2008, 15:02:48
Go to the top of the page
+Quote Post
darecki
post 13.12.2008, 15:10:00
Post #10





Grupa: Zarejestrowani
Postów: 54
Pomógł: 2
Dołączył: 24.08.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Może zrób tak:

Kod
$var_first = 2.5;
$var_second= 3.5;

$stawczka = zamieniajkupon($var_first) * zamieniajkupon($var_second);

$wygrana = $stawczka  *((double) $_POST['stawka']);


function zamieniajkupon($text)
{
  $text = str_replace(',', '.', $text);
  return (double) $text;
}


Oczywiście definiując zmienne $var_first, $var_second możesz odrazy przepuścić przez funkcje zamieniajkupon wtedy definiując zmienna $stawczka możesz opuścić parsowanie danych przez tą funkcje.


--------------------
Copyright ˆ by Darecki Ÿ Wszystkie prawa zastrzeżone
TanioNaRybki.pl
Go to the top of the page
+Quote Post
Artu123
post 13.12.2008, 15:15:07
Post #11





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 8.12.2008

Ostrzeżenie: (0%)
-----


Cytat(darecki @ 13.12.2008, 15:10:00 ) *
Może zrób tak:

Kod
$var_first = 2.5;
  $var_second= 3.5;
  
  $stawczka = zamieniajkupon($var_first) * zamieniajkupon($var_second);
  
  $wygrana = $stawczka  *((double) $_POST['stawka']);
  
  
  function zamieniajkupon($text)
  {
    $text = str_replace(',', '.', $text);
    return (double) $text;
  }


Oczywiście definiując zmienne $var_first, $var_second możesz odrazy przepuścić przez funkcje zamieniajkupon wtedy definiując zmienna $stawczka możesz opuścić parsowanie danych przez tą funkcje.


Za każdym razem wynik wychodzi 17,5

Dodam że w bazie danych np. może być 2,5*3,3*2,1*2,8* może być tak wiele liczb.

Ten post edytował Artu123 13.12.2008, 15:18:25
Go to the top of the page
+Quote Post
darecki
post 13.12.2008, 15:25:37
Post #12





Grupa: Zarejestrowani
Postów: 54
Pomógł: 2
Dołączył: 24.08.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Rozumiem że w bazie masz taki string: 2,5*3,5, a więc zmodyfikuj kod funkcji tak:

Kod
$stawczka = '2,5*3,5';

$wygrana = zamieniajkupon($stawczka)  * ((double) $_POST['stawka']);  
  
function zamieniajkupon($text)
{
    $text = str_replace(',', '.', $text);
    
    return (double) eval($text);
}


Chodzi o dopisanie funkcji eval, brak było wykonania operacji i dlatego zwracając wcześniej dostawałeś tylko to co było przed operatorem mnożenia.


--------------------
Copyright ˆ by Darecki Ÿ Wszystkie prawa zastrzeżone
TanioNaRybki.pl
Go to the top of the page
+Quote Post
webdice
post 13.12.2008, 15:26:02
Post #13


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Założyłeś już jeden temat o mnożeniu licz, więc kontynuuj go, a nie zakładaj nowego. Wątek oczywiście zamykam.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:19