2017-02-11 52 views
0

我試圖建立一個卡路里損失計算器,並獲得用戶目前的體重,無論是英鎊或公斤,以及他們已經在幾分鐘或幾小時內鍛鍊的時間。 我想將數據名稱(磅/千克和分鐘/小時)而不是它們的數值保存到我的SQL數據庫中。如何將數據名稱而不是它的值從html存儲到我的SQL數據庫中?

<?php 
//session_start(); 

if (ISSET($_POST['savecalories'])) { 
    session_start(); 
    $currentweight =  floatVal(mysqli_real_escape_string($db,$_POST['Weight'])); 
    $weightunit = mysqli_real_escape_string($db,$_POST['WeightUnit']); 
    $activitytime = floatVal(mysqli_real_escape_string($db,$_POST['Time'])); 
    $timeunit = mysqli_real_escape_string($db,$_POST['TimeUnit']); 

?> 

回答

0

您的PHP代碼只會插入WeightUnit和TimeUnit選擇字段的值(例如,將WeightUnit設置爲1和2.2)。我不知道你的頁面/代碼還有什麼功能,但只需將字段的「值」更改爲「磅或千克」。

但我假設你正在HTML頁面上進行其他JavaScript計算,需要那些「1」和「2.2」值。如果是這樣的話,解決這個問題的方法之一是改變PHP頁面上的值,如下所示。這不是唯一的選擇,但很簡單。

if (ISSET($_POST['savecalories'])) { 
session_start(); 
$currentweight =  floatVal(mysqli_real_escape_string($db,$_POST['Weight'])); 
if (mysqli_real_escape_string($db,$_POST['WeightUnit']) == '1') $weightunit = 'Pounds'; else $weightunit = 'Kilograms'; 
//$weightunit = mysqli_real_escape_string($db,$_POST['WeightUnit']); 
$activitytime = floatVal(mysqli_real_escape_string($db,$_POST['Time'])); 
if (mysqli_real_escape_string($db,$_POST['TimeUnit']) == '60') $timeunit = 'Minutes'; else $timeunit = 'Hours'; 
//$timeunit = mysqli_real_escape_string($db,$_POST['TimeUnit']); 
$activity = mysqli_real_escape_string($db,$_POST['Activity']); 
$calories = floatVal(mysqli_real_escape_string($db,$_POST['Calories'])); 
$userid = $_SESSION['userid']; 

$query = mysqli_query($db,"INSERT INTO tracklog 
        (currentweight,weightunit,activitytime,timeunit,activity,calories,userid) 
        VALUES('".$currentweight."', '".$weightunit."', '".$activitytime."', '".$timeunit."','".$activity."', '".$calories."', '".$userid."')"); 
} 

我希望我能正確理解你的問題。

+0

感謝您的回答!我剛剛嘗試過,但現在沒有保存到我的sql數據庫:/ – Mal1234

+0

什麼類型的MySQL字段是weightunit和timeunit列? VARCHAR?整數?上面的代碼更改之前是否至少插入了任何內容? – WeekendCoder

+0

這兩個Varchar。是的,它是插入兩個數字值。但現在它說有一個標誌不匹配。 – Mal1234

相關問題