0

我正在使用 PHP 和 MySQL 数据库管理进行练习,并且正在尝试使用 PHP 从表中的字段返回金额。我试图从foodsID 等于用户选择的foodsID 的foods 表中的CalsPerServ 中获取值。我现在得到的只是一个数组,当我应该返回一个结果时。知道出了什么问题吗?

if($tableName == "meals"){
        $foodsID = filter_input(INPUT_POST, "foodsID");
        $servings = filter_input(INPUT_POST, "Servings");
        $foodsID = mysql_real_escape_string($foodsID);
        $servings = mysql_real_escape_string($servings);

        $query = "SELECT CalsPerServ FROM foods WHERE foodsID=$foodsID";
        $result = mysql_query($query, $connect);
        $CalsPerServ = mysql_fetch_assoc($result);

        print $CalsPerServ;

        $calories = ($CalsPerServ * $servings) * 100;

        $sql .= "(foodsID, Servings, Calories) VALUES ('$foodsID', '$servings', '$calories')";

        $sqltwo = "INSERT INTO daily_diary (foodsID, CaloriesPlus) VALUES ('$foodsID', '$calories')";
        $resulttwo = mysql_query($sqltwo, $connect);
}
4

2 回答 2

1

问题出在这一行

$calories = ($CalsPerServ * $servings) * 100;

$CalsPerServ是一个包含查询结果的数组。为了从中获取单列值,您必须像这样使用它

$calories = ($CalsPerServ['CalsPerServ'] * $servings) * 100;
于 2013-06-17T22:59:10.013 回答
1

即使您正在查询一件事,mysql_fetch_assoc() 也会返回一个数组。

这样,即使您选择了不止一个东西,您也将始终知道您将返回一个关联数组,其中选定的项目作为其键。

$CalsPerServ = mysql_fetch_assoc($result);

 print $CalsPerServ['CalsPerServ'];
于 2013-06-17T22:59:56.440 回答