Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> Mnożenie liczb v2
Artu123
post
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:

(IMG:http://img2.vpx.pl/up/20081213/kupon.png)
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
Artu123
post
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
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()
Go to the top of the page
+Quote Post
Kildyt
post
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. (IMG:http://forum.php.pl/style_emoticons/default/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
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']);
Go to the top of the page
+Quote Post
Artu123
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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
Go to the top of the page
+Quote Post
Artu123
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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.
Go to the top of the page
+Quote Post
Artu123
post
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
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.
Go to the top of the page
+Quote Post
webdice
post
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 10:18