Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mnożenie liczb v2
Forum PHP.pl > Forum > PHP
Artu123
  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:

erix
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.
Artu123
funkcja zamieniajkupon zamienia , na .
dr_bonzo
  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()
Kildyt
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.
darecki
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']);
Artu123
  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ę.
darecki
pokaż kod funkcji zamieniajkupon() i przypisanie danych do zmiennej $staweczka
Artu123
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
darecki
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.
Artu123
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.
darecki
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.
webdice
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.
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.