Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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 从数组中检索数据_Php_Html_Mysql_Arrays - Fatal编程技术网

Php 从数组中检索数据

Php 从数组中检索数据,php,html,mysql,arrays,Php,Html,Mysql,Arrays,我有一个小问题,我的代码存储该值并可以像往常一样运行,但当我想再次显示它时,该值将不会显示,错误是: 注意:未定义的变量:第91行的c:\xampp\htdocs\eAttendance\********php中的result_c 即: <td><?php echo $GLOBALS['result_c'] ?></td> 为什么不能直接输出?或者我理解不正确。我也会使用事先准备好的语句。以下是一个例子: 似乎您正在将数据直接从客户端注入到db调用中,从而

我有一个小问题,我的代码存储该值并可以像往常一样运行,但当我想再次显示它时,该值将不会显示,错误是:

注意:未定义的变量:第91行的c:\xampp\htdocs\eAttendance\********php中的result_c

即:

<td><?php echo $GLOBALS['result_c'] ?></td>

为什么不能直接输出
?或者我理解不正确。

我也会使用事先准备好的语句。以下是一个例子:


似乎您正在将数据直接从客户端注入到db调用中,从而使您完全有可能受到攻击

尝试在while循环之外声明
$result\u c
,这样您就不必使用
$GLOBALS
来处理您遇到的变量范围问题。此外,不建议使用$GLOBALS


额外建议:我建议您使用命名约定,以便我们更容易理解您的代码。

该代码有太多错误,您没有初始化
$result\u c
变量,您使用的是
$GLOBALS
,尽管
$result\u c
在当前范围内,而不是全局范围内,您总是将
$popo
变量设置为1,而从未使用过它(或者如果您删除了该部分代码,那么您可以简单地在循环之外设置该变量。要回到初始问题,只需使用
$result\u c
而不是
$GLOBALS['result\u c']
…而且你真的不应该直接在你的查询中放置unscaped get参数,否则它将不会显示$result\c..但是当我喜欢这样的sql查询时,“$sql1=mysql\u查询(“从考勤中选择*,其中id\u student='202133415'和subject\u code='FP 901'”,或者死亡('query failed..mysql\u error());”
它将在$result_c中显示值存储。我刚刚更改了sql查询。可能我无法直接执行,需要使用过滤器将其设置为字符串?是
$sql1=mysql_查询(“选择*来自考勤,其中id_学生='$result1[$a]'和主题代码='$sbj')还是死亡('query failed..mysql_error());
不返回任何行?尝试添加
{}
以字符串形式围绕数组变量。例如,
$sql1=mysql\u query(“从考勤中选择*,其中id\u student='{$result1[$a]}'和subject\u code='$sbj'))或die('query failed..mysql\u error());
它将返回一个结果,但结果将是$result1的零/0…如果我在sql查询语句中更改“$sql1=mysql\u query(“Select*from attention where id_student='1909dsa'和subject_code='sbj'”)…它将显示值..您是否将数组变量包装在
{}
中?再看一看我以前的评论。是的,我使用{}..进行了处理..结果仍然相同..显示值为0..为什么?是关于mysql_real_escape字符串的
<table >
<tr>
 <td>Matrix Card</td>
    <td>Percent</td>
 </tr>
 <?php
$sbj = $_GET['sbj'];
$cls = $_GET['cls'];
  $sql = mysql_query ("SELECT * FROM stu_course where class = '$cls' and subject_code = '$sbj'");
  $a = 0;

  while ($row = mysql_fetch_assoc($sql)){ 
       ?>
      <tr>
          <?php
    $result1[] = $row['login_id'];

    $sql1 = mysql_query("Select * from attendance where id_student = '$result1[$a]' and subject_code = '$sbj'") or die('Query failed. ' . mysql_error());
    $b = 0;
    while($row1 = mysql_fetch_assoc($sql1))
    {
        $popo = 1;
        $result_array[] = $row1['credit_hour'];
        $add = $result_array[$b];
        $result_c = $result_c + $add;
    }?>
      <td><?php echo $result1[$a];?></td>
     <td><?php echo $GLOBALS['result_c'] ?></td>
   <?php             
    $a++;      
  }
  ?>
  </tr>
</table>