IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Diskuze: Desetinné čísla = vložení do DB

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
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
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.