Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';无法获取数据的值_Php - Fatal编程技术网

Php Can';无法获取数据的值

Php Can';无法获取数据的值,php,Php,我在获取查询的结果值时遇到问题,错误是 注意:未定义的索引:C:\xampp\htdocs\gradingxworking\teacher\student.php中的prelim,第85行有人能帮我解决这个问题吗,或者有什么线索可以解决这个问题吗?我刚刚开始学习php <tbody> <?php $c=1; ?> <?php foreach($mystudent as $row): ?> <tr>

我在获取查询的结果值时遇到问题,错误是<代码> 注意:未定义的索引:C:\xampp\htdocs\gradingxworking\teacher\student.php中的prelim,第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>
之后

<?php $grade = $student->getstudentgrade($row['studid']);?>

根据getstudentgrade函数,您将获得多维数组结果,您可能需要将$grade['prelim']更改为$grade[0]['prelim']

正如@Bara建议的那样,您需要在访问数组之前先检查数组

$grade['prelim']
if(isset($grade['prelim']))
我怀疑,没有特定
studid
的数据。让我们看看你的功能

$data = array();
   while($row = mysql_fetch_array($r)){
            $data[] = array(
    'prelim' => $row['prelim']
    );
} 
现在,您已经创建了新的数组
$data
。但是,如果没有记录?您的
while
循环将不会执行,并且您的
$data
数组将不会有任何内容。正确的?所以,要处理这个问题,需要检查数组中是否有数据

现在,第二点,@Mossavari提出的也是正确的。你需要使用

$grade[0]['prelim'];
而不是

$grade['prelim'];

因为,每个学生只有一个年级。那么,为什么要使用数组呢

<?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>

***无结果***

mysql.*
在PHP5.5中被弃用,在PHP7中被删除。请开始使用
mysqli.*
PDO
@SuperDJ是的,我会更改它。您的
studentsubject
表中是否有
prelim
列?您的表中是否有特定学生id的数据?@SuperDJ是的sir请完整阅读我的帖子。为了避免进一步的混乱。是的。我已经编辑并记录了你的建议,效果很好,先生。因为分数在不同的表格中。实际上,在这个表中,它有两个功能。
$studid
处于不同的函数中,因此我需要获得另一个函数来获得分数。我理解这一点。但是,因为每个学生只有一个年级。那么,为什么要为@nethkennnthen使用数组呢?先生,用什么呢?我刚刚开始学习php和sql。我不知道这是否是一个好的做法。对不起,没问题。看见仅当存在多个值时才使用数组。但是,在你的情况下,每个学生只有一个年级。所以,我想说的是:为什么要使用数组来存储等级@荷兰
$grade['prelim'];
<?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;
}?>
<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>