我对PHP和MySQL非常陌生,所以提前表示抱歉。我正在尝试执行一个查询,该查询计算一列最近30行的总和,并将结果插入表中的另一列。
这是代码:
$link = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME);
$sql1 = ("SELECT sum(open) FROM (SELECT date,open FROM AA ORDER BY date DESC LIMIT 30) sumopen30");
$result = mysqli_query($link,$sql1);
$resultarray = mysqli_fetch_assoc($result);
$attempts = $resultarray["open"];
echo $attempts;
$sql2 = "INSERT INTO AA (sum) VALUES ('$attempts')";
mysqli_query($link,$sql2);
我没有得到任何结果、更新或错误。如果我将查询更改为"SELECT open FROM AA WHERE open>40",则数据会得到响应,但我认为查询存在问题。如有任何建议,我们将不胜感激。
问题是,总和没有存储在open中-字段名为sum(open)
您还可以简化查询,并给总和(打开)一个新名称
$link = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME);
$sql1 = ("SELECT sum(open) as sum_open FROM AA ORDER BY date DESC LIMIT 30");
$result = mysqli_query($link,$sql1);
$resultarray = mysqli_fetch_assoc($result);
$attempts = $resultarray["sum_open"];
echo $attempts;
$sql2 = "INSERT INTO AA (sum) VALUES ('$attempts')";
mysqli_query($link,$sql2);
试试这个:
$sql1 = ("SELECT sum(open) as open FROM AA ORDER BY date DESC LIMIT 30");
$result = mysqli_query($link,$sql1);
$resultarray = mysqli_fetch_assoc($result);
$attempts = $resultarray["open"];
echo $attempts;
$sql2 = "INSERT INTO AA (sum) VALUES ($attempts)";
mysqli_query($link,$sql2);
我假设您的num
字段是数字。