Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: operacje na zmiennych liczbowych pobranych z bazy
Forum PHP.pl > Forum > Bazy danych
sebexodus
Witam

Mam mały problem z operacjami na liczbach pobranych z bazy mysql,

mam zmienną float - tak jest zadeklarowana w bazie
mam zmienną sesyjną w zasadzie również pobraną z bazy

chciałem te zmienne porównać, ewentualnie odjąć, ale niestety nie za bardzo to działa.

Jak można te liczby ujednolicić, a później updetować bazę danych o te liczby?
mike
Ale masz pecha.
Normalnie przed chwilą nasza "forumowa" wróżka Roksana wsiadła na miotłę i odleciała i teraz nikt nie domyśli się co masz w kodzie ...

... no chyba, że nam go pokażesz tongue.gif

Jak chcesz dostać odpowiedź to dostarcz nam jak najwięcej informacji: pokaż kod, zraportj błędy, pokaż komunikaty, opisz jak powinno działać, ...
Naucz się pytać. Bedziesz miał większe szanse na odpowiedź.
sebexodus
Kod
include ('conf.php');
global $HTTP_SESSION_VARS;
$haslo = $HTTP_POST_VARS['haslo_jednorazowe'];
$koszt = $HTTP_SESSION_VARS['calkowita_wartosc'];
$nr = $HTTP_SESSION_VARS['klient'];


  @ $db = mysql_pconnect
  if (!$db)
   {
    echo'Błąd: Połączenie z bazą danych nie powiodło się!';
    exit;
   }

  mysql_select_db('xxx');
  $zapytanie = mysql_query("select xxx from xxx where xx='$xx'");
  $wynik = mysql_fetch_array($zapytanie);
  $konto = number_format($wynik['saldo'], 2);

$saldo = sprintf("%.2f", floatval(str_replace("," , ".", $konto)));
  $cena  = sprintf("%.2f", floatval(str_replace("," , ".", $koszt)));



        if  ($cena>$saldo)
            {
                          echo '<p align="center">Brak dostępnych środków na koncie<br>';
                          echo 'Przelew nie został zrealizowany</p>';
                          exit();
            }

        if (($cena=$saldo) || ($cena<$saldo))
            {
                           $stan_konta = $saldo+$cena;
                           echo " stan konta - $stan_konta";
                           $stan_konta= strval ($stan_konta);
                           @ $db = mysql_pconnect('localhost','polkowic_bank','bank');
                             if (!$db)
                                {
                                    echo'Błąd: Połączenie z bazą danych nie powiodło się!';
                                    exit;
                                }
                             mysql_select_db('polkowic_bank');
                             $przelew = mysql_query(UPDATE);
                             $aktualizacja = mysql_fetch_array($wynik);
                             $aktualne_saldo = number_format($konto['saldo'], 2);
                             echo "aktualne konto - $aktualne_saldo";
                             echo'<p align="center">Dyspozycja została przyjęta';
                             echo '<br><a href="wyloguj.php"><b>Wyloguj</b></a></p>';
                             }

}


jak widzicie mam dwie zmienne $saldo i $konto.
$saldo jest pobrane z bazy danych (w bazie jest jako float), natomiast $konto jest pobrane z sesji, ale zanim trfiło do sesji było również pobrane z bazy.
Później próbowałem ustawić taki sam tym zmiennych używając: sprintf("%.2f", floatval(str_replace("," , ".", $konto))); tak gdzieś było na goglach.

Wszystko działa dopuki nie zacznę odejmować od siebie saldo i konto wtedy coś jest nie tak bo wynikiem jest 0.
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.