Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL和PHP数据库?_Php_Mysql_Database - Fatal编程技术网

MySQL和PHP数据库?

MySQL和PHP数据库?,php,mysql,database,Php,Mysql,Database,我正在用PHP和MySQL数据库管理做一个练习,我试图用PHP从表中的字段返回一个值。我试图从foods表中的CalsPerServ中获取值,其中FoodId等于用户选择的FoodId。我现在得到的只是一个数组,当我应该返回一个结果时。知道哪里出了问题吗 if($tableName == "meals"){ $foodsID = filter_input(INPUT_POST, "foodsID"); $servings = filter_input(INPUT_

我正在用PHP和MySQL数据库管理做一个练习,我试图用PHP从表中的字段返回一个值。我试图从foods表中的CalsPerServ中获取值,其中FoodId等于用户选择的FoodId。我现在得到的只是一个数组,当我应该返回一个结果时。知道哪里出了问题吗

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);
}

问题就在这一行

$calories = ($CalsPerServ * $servings) * 100;
$CalsPerServ
是包含查询结果的数组。为了从中获得单列值,您必须像这样使用它

$calories = ($CalsPerServ['CalsPerServ'] * $servings) * 100;

即使您正在查询一件事,mysql\u fetch\u assoc()也会返回一个数组

这样,即使您选择了多个项目,您也将始终知道将返回一个关联数组,其中所选项目作为其键

$CalsPerServ = mysql_fetch_assoc($result);

 print $CalsPerServ['CalsPerServ'];

mysql_fetch_assoc返回一个关联数组。并告诉你的老师mysql_*已被弃用。()-0.49用于2013年使用mysql_查询。看看mysqli或PDO。任何一个都支持预处理语句,这首先意味着你不必手动完成所有这些摆脱垃圾和拼凑SQL的工作。@Tom告诉我吧。。。我很生气,他只教这些+1.学习过程。你现在比我远多了。不管是谁毁了你,真丢脸。@cHao真的,相信我,如果不是为了学校,我根本不会做数据库!啊!!非常感谢你!我知道有些小事我没有做。我猜我的大脑在8个小时的编码后被炸了!啊!!非常感谢你!我知道有些小事我没有做。我猜我的大脑在8个小时的编码后被炸了@Rachellelbennington这主要发生在程序员身上:)