私は、ユース ミニストリーの子供たちがサマー キャンプに向けて獲得した奨学金資金を追跡するのに役立つアプリを作成しています。アプリのこの部分では、データベースから現在持っている金額を選択し、それを $oldAmount という変数に保存して、$fundsAmount に追加し、新しい資金額でデータベースを更新します。
//Select student's current allocated funds amount and save to $studentFunds array
$selectQuery = "SELECT studentFunds FROM students WHERE studentNum = $studentNum";
$selectStatement = $db -> prepare($selectQuery);
$selectStatement -> execute();
$studentFunds = $selectStatement -> fetchAll();
//DEBUG: Display value of studentFunds array
echo "Value of array studentFunds before operation: ";
var_dump($studentFunds);
//Save the value of $studentFunds['studentFunds'] to $oldAmount
$oldAmount = $studentFunds['studentFunds'];
//Perform operation: add old amount and new funds amount together
$studentNewAmount = $oldAmount + $fundsAmount;
//DEBUG: display $studentNewAmount
echo "Value of studentNewAmount after operation: ";
echo $studentNewAmount;
//DEBUG: $studentNewAmount = 255;
$db -> query("UPDATE students SET studentFunds = '$studentNewAmount' WHERE studentNum = $studentNum");
何らかの理由で、アプリを実行するたびにこのエラーが発生し続けます。
注意: 未定義のインデックス: C:\xampp\htdocs\scholarshipManager\model\insertAllocation.php の 31 行目の StudentFunds
31 行目は次のとおりです。
$oldAmount = $studentFunds['studentFunds'];
var_dump() は、$studentFunds 配列の次の内容を表示します。
操作前の配列 studentFunds の値:
array(1) {
[0]=> array(2) {
["studentFunds"]=> string(3) "200"
[0]=> string(3) "200"
}
}
また、エラーのため、データベースが新しい金額で更新されていません。
ご覧のとおり、studentFunds インデックスには値が含まれているため、なぜこのようなことが起こっているのでしょうか。エラーを誤解していますか、それともコードにエラーがありますか?