我无法获取查询的结果值,但错误说明了。
Notice: Undefined index: prelim in C:\xampp\htdocs\gradingxworking\teacher\student.php on line 85
有人可以帮助我解决这个或一些线索来解决这个问题吗?我刚开始学习php。
<tbody>
<?php $c=1; ?>
<?php foreach($mystudent as $row): ?>
<tr>
<td><?php echo $c; ?></td>
<td class="text-center"><?php echo $row['studid']; ?></td>
<td class="text-center"><?php echo $row['lname'].', '.$row['fname']; ?></td>
<?php $grade = $student->getstudentgrade($row['studid']);?>
//code that cause error line 85--> <td class="text-center"><?php echo $grade['prelim']; ?></td>
</tr>
<?php $c++; ?>
<?php endforeach; ?>
<?php if(!$mystudent): ?>
<tr><td colspan="8" class="text-center text-danger"><strong>*** No Result ***</strong></td></tr>
<?php endif; ?>
</tbody>
功能:
function getstudentgrade($studid){
$q = "select * from studentsubject where studid=$studid";
$r = mysql_query($q);
$data = array();
while($row = mysql_fetch_array($r)){
$data[] = array(
'prelim' => $row['prelim']
);
}
return $data;
}
答案 0 :(得分:0)
完成后
<?php $grade = $student->getstudentgrade($row['studid']);?>
您需要查看$grade
的内容。在尝试从数组中获取数据之前,它会更好地进行检查:
if(isset($grade['prelim']))
答案 1 :(得分:0)
根据您的getstudentgrade功能,您将拥有多维数组结果,您可能需要将
$grade['prelim']更改为
$grade[0]['prelim']
答案 2 :(得分:0)
正如@Bara建议的那样,您需要先检查数组才能访问它。
if(isset($grade['prelim']))
我怀疑,没有特定studid
的数据。让我们看看你的功能。
$data = array();
while($row = mysql_fetch_array($r)){
$data[] = array(
'prelim' => $row['prelim']
);
}
现在,您已创建新阵列$data
。但是,如果没有记录?您的while
循环将不会被执行,而您的$data
数组将不会执行任何操作。对 ?因此,要处理这个问题,您需要检查阵列中是否有任何数据。
现在,@ Moskari所做的第二点也是正确的。你需要使用
$grade[0]['prelim'];
而不是
$grade['prelim'];
答案 3 :(得分:0)
因为,每个学生只有1年级。那么,为什么要使用数组。
<?php
function getstudentgrade($studid){
$q = "select * from studentsubject where studid=$studid LIMIT 0,1";
$data = "";
$r = mysql_query($q);
while($row = mysql_fetch_array($r)){
$data = $row['prelim'];
}
return $data;
}?>
<强> PHP 强>
<tbody>
<?php $c=1; ?>
<?php foreach($mystudent as $row): ?>
<tr>
<td><?php echo $c; ?></td>
<td class="text-center"><?php echo $row['studid']; ?></td>
<td class="text-center"><?php echo $row['lname'].', '.$row['fname']; ?></td>
<td class="text-center"><?php echo $grade = $student->getstudentgrade($row['studid']);?></td>
</tr>
<?php $c++; ?>
<?php endforeach; ?>
<?php if(!$mystudent): ?>
<tr>
<td colspan="8" class="text-center text-danger">
<strong>*** No Result ***</strong>
</td>
</tr>
<?php endif; ?>
</tbody>