0

ここでは宿題を手伝うことは一般的に認められていませんが、1 週間以上立ち往生しているので、助けていただければ幸いです。概念は単純に思えますが、ファイルを分解してその情報を配列に取得することはできません。

目標は、フォームから入力されたテキストを比較するものを持つことです。たとえば、Bob という名前が名前フィールドに入力された場合、Bob の名前が既にリストにあるかどうかを確認する方法があります。

これが私の最新の試みです:

<?php
    if(isset($_POST['sname'],$_POST['snumber'],$_POST['courseselect']))
    {
        //Has to be submitted first
        $studentname = $_POST['sname'];
        $studentnumber = $_POST['snumber'];
        $course = $_POST['courseselect'];
        if(empty($studentname) || empty($studentnumber))
        {
            //make sure all fields are filled in
            echo "All fields must be filled in";//for if they aren't filled in
        }
        else 
        {
            //if they are filled in
            $studentfile = "students";
            $SF = fopen($studentfile, 'r') or die("$studentfile cannot be opened for reading");

            while($studentlist = fgets($SF))
            {
                list ($stoodname, $stoodnumber) = explode('::', $studentlist);
                $testarray[] = array('$stoodname');
                echo $testarray;
            }
        }
        //end of if/else
    }//end of "has to be submitted"
?>

明らかな何かが欠けているように感じます:(

4

2 に答える 2

0

あなたのコードはうまくいくようです。

間違っているのは次の部分です。

$testarray[] = array('$stoodname');

変数を単一引用符で囲むと、文字列として扱われます。

試す

$testarray[] = $stoodname;

// other dirt

$studentExists = in_array($stoodname, $testarray);

if($studentExist) {
    //  code
}
于 2012-07-12T13:30:53.123 に答える
0

::学生ファイルがフィールド間にある CSV であると仮定します。

<?php
    if(isset($_POST['sname'],$_POST['snumber'],$_POST['courseselect']))
    {
        //Has to be submitted first
        $studentname = $_POST['sname'];
        $studentnumber = $_POST['snumber'];
        $course = $_POST['courseselect'];
        if(empty($studentname) || empty($studentnumber))
        {
            //make sure all fields are filled in
            echo "All fields must be filled in";//for if they aren't filled in
        }
        else 
        {
            //if they are filled in
            $studentfile = "students";
            $SF = fopen($studentfile, 'r') or die("$studentfile cannot be opened for reading");

            while($studentlist = fgets($SF))
            {
                $testArray=explode('::', $studentlist);
                for($i=0;$<count($testArray);$i++)
                {
                    if($testArray[$i]==$studentname)
                    {
                        // You found your match!
                    }
                }
                print_r($testArray);
                unset($testArray);
            }
        }
        //end of if/else
    }//end of "has to be submitted"
?>
于 2012-07-12T09:30:08.623 に答える