Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

wyslanie zmiennej liczbowej do bazy mysql

Zdecydowałeś się na tworzenie interaktywnych stron przy pomocy PHP? Chcesz w łatwy i szybki sposób zarządzać danymi na swojej stronie? Tutaj znajdziesz pomoc w napotkanych przy tym trudnościach.

wyslanie zmiennej liczbowej do bazy mysql

Post 02.12.2017, 17:03:36

Witam.
Pracuję nad aplikacją, która będzie liczyć i wyświetlać pewne wyniki na stronie www.
Wszystko już działa ale problem mam z przesłaniem liczby niecałkowitej np 2.777 itp.
W bazie danych mam ustawiony typ na double. Teoretycznie skrypt zwraca mi zmienna o typie double natomiast po odczycie danych z bazy typ zmienia sie na int. Ktos podpowie ? Dzieki
Obrazek
Kod: Zaznacz cały
 
<?php

$dbServer = 'localhost';
$dbUser = 'root';
$dbPass = '******';
$dbName = 'elskibap_gastro';

   $mysqli = new mysqli($dbServer, $dbUser, $dbPass, $dbName);
   $mysqli->set_charset("utf8");


$ulica = strip_tags($_POST['ulica']);
$miasto = strip_tags($_POST['miasto']);
$kwota = +(strip_tags($_POST['kwota']));
$platnosc = strip_tags($_POST['platnosc']);
$msg = strip_tags($_POST['txt']);

      if( strlen($ulica)>2 && strlen($miasto)>2 && $kwota>0 && !empty($platnosc) ) {
         $stm = $mysqli->prepare("INSERT data (ulica,miasto,kwota,platnosc,msg) VALUES (?,?,?,?,?)");
         $stm->bind_param("ssdss",$ulica,$miasto,$kwota,$platnosc,$msg);
         $stm->execute();
         $stm->close();

         $result = $mysqli->query("SELECT * FROM  data ORDER BY id");
         $sumAll=0;
         $sumGot = 0;
         $sumOnl = 0;
         $sumKrt = 0;

         while($article = mysqli_fetch_array($result)){
            $kwota = $article['kwota'];
            $sumAll += $kwota;
            if($article['platnosc'] == "gotowka"){
               $sumGot += $kwota;
            }
            if($article['platnosc'] == "online"){
               $sumOnl += $kwota;
            }
            if($article['platnosc'] == "karta"){
               $sumKrt += $kwota;
            }
         }
      
      }
echo
"
      <p id='gotowka'> $sumGot </p>
      <p id='karta'> $sumKrt </p>
      <p id='online'> $sumOnl </p>
      <p id='suma'> $sumAll </p>
";

echo gettype($kwota) ."<br>";
echo $kwota;


 ?>
Su_Man
Posty: 3
Dołączył(a): 14.10.2007

Re: wyslanie zmiennej liczbowej do bazy mysql

Post 02.12.2017, 20:42:52

W MySQL definicja
Kod: Zaznacz cały
DOUBLE(11,0)

oznacza, że przewidujesz liczby do maksymalnie 11 cyfr, przy czym z tej puli dajesz 0 cyfr na część ułamkową.
Poza tym, jeśli dane, które zapisujesz są wartościami monetarnymi, to powinno się stosować typy, które potrafią jednoznacznie (bez utraty precyzji) reprezentować zapisywane wartości, dlatego DECIMAL powinno być lepsze.
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19664
Dołączył(a): 14.04.2002

Re: wyslanie zmiennej liczbowej do bazy mysql

Post 02.12.2017, 20:47:51

Dzieki!
Poprawiłem na Double(11,3) i już działa :).
Su_Man
Posty: 3
Dołączył(a): 14.10.2007


Powrót do PHP i bazy danych


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google Adsense [Bot] i 4 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 50864 zarejestrowanych użytkowników.
Najnowszy użytkownik: paulinaka


Nasi użytkownicy napisali:

  • 936286 wiadomości
  • w 246804 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)