1. ホーム
  2. php

[解決済み] 何が原因か。「お知らせです。Uninitialized string offset" が表示されるのはなぜですか?[クローズド]

2022-02-09 09:17:41

質問

ユーザーが入力するフォームがあり、フォームには、quot;プロジェクト名、quot;プロジェクト日付、quot;カテゴリーなど、複数の同じフィールドが存在します。ユーザーが送信するフォームの数に基づいて、私の目標は、次のようになります。

  1. フォームの数をループする
  2. 個々のSQL挿入文の作成

しかし、PHPは私が理解できないようなNOTICEを投げてきます。

お知らせです。

お知らせ 初期化されていない文字列 offset: 1 ...dataPasser.php on line 90

PHP

$myQuery = array();

if ($varsCount != 0)
{
  for ($i=0; $i <= $varsCount; $i++)
  {
    $var = "insert into projectData values ('" . $catagory[$i] . "', '" .  $task[$i] . "', '" . $fullText[$i] . "', '" . $dueDate[$i] . "', null, '" . $empId[$i] ."')";
    array_push($myQuery, $var);     
  }
}

私が抱えているこの問題についての参考文献はありますが、正確ではなく、実際の問題がどこに起因しているのか推論するのに苦労しています。配列が正しく初期化されない原因を理解するために、何か手助けがあれば非常にありがたいです。

解決方法は?

このエラーは、以下の変数のいずれかが、配列ではなく、文字列またはNULLであった場合に発生します。 $var[$i] は、文字列の中の特定の文字にアクセスしようとしているようなものです。

$catagory
$task
$fullText
$dueDate
$empId

要するに、挿入クエリにあるもの全てです。

おそらく $catagory 変数のスペルを間違えていませんか?