0

おそらく非常に単純な問題で問題が発生していますが、問題が何であるかを理解できません。

以前fopen()はcsvファイルをロードし、それを異なる行に分割して、文字列を文字列の配列にロードしていました。各文字列を分解して、値をSQLデータベースにプラグインしようとしています。

$datalength は、csv ファイルの行数です。最初の行は列の見出しなので、$x は 1 から始まります。

for ($x=1;$x<$datalength;$x++)
    {
        $broken = explode(",",$lines[$x]);
        $field1 = $broken[0];
        $field2 = $broken[1];
        $field3 = $broken[2];
        $field4 = $broken[3];
        echo $division;
        $importdata = "INSERT INTO Teams (Field1,Field2,Field3,Field4)
        Values ($field1,$field2,$field3,$field4)";
    }

次のエラーが発生し続けます(ところで、私はWAMPを使用しています):

 Notice: Undefined offset: 1 in C:\wamp\www\test 2 (html-index)\upload_file.php on line 45, 46, 47

$field2行 45 ~ 47 は、 ~ の、$field3、および$field4割り当てと一致し$broken[1]ます$broken[3]。それがなぜなのかわかりません。

すぐに欠けているものはありますか?私の人生をずっと楽にしてくれるかもしれないと思う提案は、温かく感謝されます.

4

1 に答える 1

-1

すぐに欠けているものはありますか?

はい。
非常に重要な何か。

あなたは仮想プログラマーです。あなたのプログラムは実データではなく虚データを扱っています。あなたが持っているいくつかの文字列を分解して配列に入れることができると想像してください。そうではありませんが。しかし、何らかの理由で、あなたは想像上の仮想世界にとどまり、実際の世界に触れようとはしません。

$lines[$x]コンマ区切りの文字列が含まれていると想定しています。確認しましたか?には 4 つの要素の配列が含まれて
いると想定しています。確認しましたか?$broken

それらを印刷するだけです。これはとても簡単ですが、すぐに現実の世界に引き込まれます。処理するデータは想像上のものではなく、実際に表示されます。そして、適切な措置を講じることができます。

var_dump()プログラマーの親友です。欠かせないこの機能もぜひお友達になってください。

var_dump($lines[$x],$broken);

オフセットの何が問題なのかを明確に教えてくれます。

于 2013-08-09T04:53:45.107 に答える