PHP未定义偏移量(不是错误),尝试捕获

时间:2019-01-20 23:47:26

标签: php

我想在一个网页上列出(最多)该流行病年度剩余的六个作业。 其余分配的数据来自mysql数据库。 当剩余六个或更多任务时,网页将正确显示信息。 如果剩下的少于六个,那么我会得到一个未定义的偏移错误(我明白原因)。 基本上,我试图以编程方式忽略偏移量错误。

我尝试过查找以下内容: 试试

php。 尝试使用(在foreach循环中)     if($ row ['name'] == null){$ row ['name'] =“”;} 等

index.php

include('getdata.php');

$nextAssArray0 = getNextAssessments($courseInfoArray[0], 0);
$nextAssArray1 = getNextAssessments($courseInfoArray[0], 1);
$nextAssArray2 = getNextAssessments($courseInfoArray[0], 2);
$nextAssArray3 = getNextAssessments($courseInfoArray[0], 3);
$nextAssArray4 = getNextAssessments($courseInfoArray[0], 4);
$nextAssArray5 = getNextAssessments($courseInfoArray[0], 5);

<div class="col-sm-4">
<h3>You have <?php echo '' ?> assignments left</h3>
 <p>Assignment: <?php echo $nextAssArray0[0]; ?> is due on <?php echo $nextAssArray0[1]; ?></p>
 <p>Assignment: <?php echo $nextAssArray1[0]; ?> is due on <?php echo $nextAssArray1[1]; ?></p>
 <p>Assignment: <?php echo $nextAssArray2[0]; ?> is due on <?php echo $nextAssArray2[1]; ?></p>
 <p>Assignment: <?php echo $nextAssArray3[0]; ?> is due on <?php echo $nextAssArray3[1]; ?></p>
 <p>Assignment: <?php echo $nextAssArray4[0]; ?> is due on <?php echo $nextAssArray4[1]; ?></p>
 <p>Assignment: <?php echo $nextAssArray5[0]; ?> is due on <?php echo $nextAssArray5[1]; ?>
 </p>
</div>

getdata.php

function getNextAssessments($courseID, $offset)
{
try
{
    include('dbconn.php');
    $array = array();
    $stm = $conn->prepare("CALL getUpcomingAssignments(:courseID, :offset)");
    $stm->bindParam(':courseID', $courseID);
    $stm->bindParam(':offset', $offset);
    $stm->execute();
    foreach ($stm->fetchALL() as $row)
    {
        array_push($array, $row['name']);
        array_push($array, $row['due_date']);
        array_push($array, $row['tem']);
    }
}
catch (Exception $e)
{
    $array = array('','','');
}

return $array;

}

我追求以下功能: 1)如果只剩下三个分配-那么只显示三个

。 2)如果剩下十个作业-那么仅显示六个。 3)如果没有剩余的分配,则这些

中将不显示任何内容

1 个答案:

答案 0 :(得分:1)

首先,对每个数据库记录进行SQL查询不是一个好主意。从查询中删除限制,并将所有评估放入数组中。然后执行以下操作:

<h3>You have <?php echo count($assesments) ?> assignments left</h3>
<?php
foreach($assesments as $assesment){
 echo "<p>Assignment: {$assesment[0]} is due on {$assesment[1]} ?></p>"
}
?>

我也建议您更改代码,以便使用$assesment['dueDate']之类的数组,而不是$assesment[1]