如何将数据名称而不是它的值从html存储到我的SQL数据库中?

时间:2017-02-11 21:51:19

标签: javascript php sql

我试图建立一个卡路里损失计算器,并在几分钟或几小时内获得用户当前体重(磅或公斤)和他们一直锻炼的时间。 我想将数据名称(磅/千克和分钟/小时)而不是它们的数值保存到我的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']);

?>

1 个答案:

答案 0 :(得分:0)

您的PHP代码将只插入WeightUnit和TimeUnit选择字段的“值”(例如,对于WeightUnit设置为1和2.2)。我不知道您的页面/代码还有什么功能,但只是您将字段的“值”更改为“磅或公斤”字样。

但是我会假设你在需要那些“1”和“2.2”值的HTML页面上进行其他JavaScript计算。如果是这种情况,那么解决这个问题的方法就是改变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."')");
}

我希望我能正确理解你的问题。