Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
swift week + discount 30
Avatar
Štěpán
Člen
Avatar
Štěpán:20.3.2020 13:34

Ahoj, můj problém spočívá v tom, že se snažím dostat desetinné čísla do DB (update). Zní to celkem jednodušše ale dlouho jsem hledal a furt mi to nejde... ( jsem ještě furt začátečník, takže prosím o žádnou velkou vlnu negativních komentářů, jestli vůbec nějaký budou :-D )
( desetinná čísla se updatujou)

Zkusil jsem: Sloupec do kterého se zapisuje hodnota jsem nastavil na decimal.. ale když v phpmyadmin editnu hodnotu na desetinnou, napíše mi to Data truncated.
V mysqli_stmt_bin­d_param jsem nastavil parametr na double. taky nic.

Topic začíná jak je komentář upraví se data o majetku uživatele:
spaghetti kód:

if(isset($_POST['sell'])){
    if($btc_ballance < $_POST['quantity_bs']){
     echo "velkyspatny";
     die();
    }else{
      $adder = $_POST['quantity_bs'] * $btc;
      $adder = ($adder + $money);

      // -------------------------------
      //transakce se vloží do DB
      // -------------------------------
      $sql = "INSERT INTO history (b_s, quantity, price, history_id) VALUES (?, ?, ?, ?)";
      $stmt = mysqli_stmt_init($conn);

      if(!mysqli_stmt_prepare($stmt, $sql)){
        header("Location: ../register.php?error=sqlerror2");
        exit();
      }else{
        $s = "s";
        mysqli_stmt_bind_param($stmt, "siis", $s, $_POST['quantity_bs'], $adder, $history_id);
        if(mysqli_stmt_execute($stmt)){
            echo "Successfully executed!";
        }



        // -------------------------------
        // Upraví se údaje o majetku uživatele
        // -------------------------------

        $sqll = "UPDATE users SET portfolio1=?, money=? WHERE id=?";
              $stmtt = mysqli_stmt_init($conn);
                if(!mysqli_stmt_prepare($stmtt, $sqll)){
                    die(mysqli_error($conn));
        header("Location: ../register.php?error=sqlerror2");
        exit();
      }else{
          mysqli_stmt_bind_param($stmtt, "dii", $btc_ballancer, $adder, $_SESSION['id']);
          $btc_ballancer = ($btc_ballance - $_POST['quantity_bs']);
          if(mysqli_stmt_execute($stmtt)){
              echo "Transaction completed successfully";
               header("Location: ../app.php");
          }else{
           echo "<script>alert('error');</script>";

          }
      }
     }
    }
   }

Chci docílit: Aby se mi hodnota v DB nastavila na desetinné číslo

Odpovědět
20.3.2020 13:34
iq tykve
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Štěpán
Člen
Avatar
Štěpán:20.3.2020 13:57

Už jsem to vyřešil.. stačilo změnit délku/množinu na: (10,3)

Akceptované řešení
+5 Zkušeností
Řešení problému
Nahoru Odpovědět
20.3.2020 13:57
iq tykve
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.