1

私は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」に変更すると、データはエコーされますが、クエリに問題があると考えています。アドバイスをいただければ幸いです。

4

2 に答える 2

0

問題は、合計がオープンに保存されていないことです-フィールドには名前が付けられていますsum(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);
于 2013-02-16T17:14:54.277 に答える
0

これを試して:

$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のフィールドは数値だと思います。

于 2013-02-16T17:15:38.113 に答える