大変お世話になっております。
また質問させてください。
phpのfor文についてです。
下記のように関数の引数をfor文でループさせ、結果を配列として取得したいです。
しかし、いくら試しても、undefinedになるので困ってます。
ちなみに、$iが固定値(0など)ならきちんと出力されます。
書き方が間違っていたらご指摘お願いしたいと思います。
引数をループさせるのは無理なのでしょうか?
$hoge = array(); $i = 0; for ($i = 0; $i <= 10; $i++) { $hoge = kansu($mysqli,$i); if($hoge === false){ $mysqli->close(); exit(); } } echo $hoge[0];
function kansu($mysqli,$i){ $i = $mysqli->real_escape_string($i); $sql = "SELECT COALESCE(SUM(`a`), 0) AS `sumA` \n" ." FROM `atb` \n" ." WHERE `cNumberWhom`={$i}" ; if(!$res = $mysqli->query($sql)){ return false; } $i = 0; $data = array(); while($row = $res->fetch_array()){ $data[$i++] = array( "sumA" => $row[sumA] ); } return $data; }
kansuっていう関数の処理内容がわからないので記載してください
失礼いたしました。
関数をアップしました。
kansuが構文エラーだからでは?固定値にしたときどこで固定にしましたか?
where句の行、ダブルクォーテーションで閉じてないのはコピペミス?
WHERE句はコピペミスです!
固定値は
$hoge = kansu($mysqli,0)のようにしました。
これなら通るんです。
cNumberWhomは0~10全てのレコードがあるのでしょうか?
あります。
データは多めに入れております。
インデントがグチャグチャなので揃えてください。バグの温床となりえます。
※質問内のコードを整理するのではなくご自身のコードを整理して提示しなおしてください。
undefinedよりももう少し詳細なエラーメッセージは得られないでしょうか?
undefined indexとか、undefined constant indexとか、そういったメッセージです。
あと前の質問で指摘された内容があまり反映されていないように見受けられます。
https://teratail.com/questions/168974
わからないことがあるなら聞いてください。書き方の間違いというより聞き方、質問の提示の仕方に不足がありすぎます。
回答ありがとうございます。
初心者過ぎて、聞き方もわからない状態なのは否めません。
修正したつもりでしたが、、、
インデントはきちんと揃えてください。
あと引数とは別に引数と同じ名前の変数を定義して使うとかかなり危ないことやってますよ。
というかこれくらいならSQLで0から10を取得とした方がいい気がする。
回答2件
あなたの回答
tips
プレビュー