0

I want to display the result from the file directory. It did display the result, however, it was all in one line which I didn't intend that to happen. I want it to display the result on the specific part.

I got this error for example

Position ID: P0007 IT CEO Hello 01/10/13 full time fixed term Post ---


Notice: Undefined offset: 1 in /home/students/accounts//hit3323/www/htdocs/jobassign1b/searchjobprocess.php on line 56
Title:



Notice: Undefined offset: 2 in /home/students/accounts//hit3323/www/htdocs/jobassign1b/searchjobprocess.php on line 59
Description:


Notice: Undefined offset: 3 in /home/students/accounts//hit3323/www/htdocs/jobassign1b/searchjobprocess.php on line 62

I wanted for example

Position ID: P0007 Title: IT CEO Description: Hello

this is the php code, any suggestions? Thank you in advance

<?php

if(!empty($_GET["jobtitle"]))
{
umask(0007);                                    
$directory = "../../data/jobposts";             // path to directory
if(!is_dir($directory))
{
    mkdir($directory, 02770);
}

$data = $directory. "/jobs.txt";                // checking file in the directory
$opening = fopen($data, "r");                   // opening the file in reading mode

$dirFile = file_get_contents($data);
if(strpos($dirFile, $_GET['jobtitle']) === false)  // checking the user file exist or not
    {

    echo "<p>Job Title does not exist in the file</p>";
    echo '<a href="searchstatusform.php">Search another Job Title</a><br />';
    echo '<a href="index.php">Return to homepage</a>';

    }

    else

    {

    $array = file($data);
    $jobString = $_GET['jobtitle'];
        foreach($array as $key => $value) 
        {
        $get = strpos($value, $jobString);    // getting the key value of the array containing status record            
        if ($get !== false)
            {
                $file2 = $key; 
                $array2 = $array[$file2];
                $newArray = explode("\t", $array2);   //using explode and \t to create a new line
                $i = 0;
                echo "<h1> Job Vacancy Information</h1>";
                echo "<p>Position ID: $newArray[$i]</p>";     //displaying the results
                $i++;

                echo "<p>Title: $newArray[$i]</p><br />";
                $i++;

                echo "<p>Description: $newArray[$i]</p>";
                $i++;

                echo "<p>Closing Date: $newArray[$i]</p>";
                $i++;

                echo "<p>Position: $newArray[$i]</p>";
                $i++;

                echo "<p>Application by: $newArray[$i]</p>";
                $i++;

                echo "<p>Location: $newArray[$i]</p>";
                $i++;

                for($i;$i<(count($newArray)-1);$i++)
                {
                echo"<p id=p>$newArray[$i]</p>";
                }
                echo "</ul>";
                echo '<a href="searchjobform.php">Search again a new status</a>';
                echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                echo '<a href="index.php">Return to homepage</a></p>';
                }
            }
        }
    }
    else 
    {
        echo "<p>Enter a valid job to search</p>";
    }
?>
4

1 回答 1

1

它说 $i 指向的元素不存在。

使用 php 可以快速学习的一件事是逐步编写代码,因此您需要确保的第一件事是 $newArray 包含您认为的内容。

尝试将 $newArray 输出到屏幕以查看数组中的实际内容,听起来像是空的。在您分配 $newArray 之后,立即输入以下行:

print_r($newArray);

此外,当您可以将 $i 替换为您想要出现的元素的编号时,不确定您为什么要打扰 $i++,例如...

echo "<p>Position ID: $newArray[0]</p>";     //displaying the results
echo "<p>Title: $newArray[1]</p><br />";
echo "<p>Description: $newArray[2]</p>";
echo "<p>Closing Date: $newArray[3]</p>";

发布 $newArray 的输出,然后我们可以计算出接下来的代码。

干杯

格雷格·J

于 2013-10-01T06:44:57.147 回答