Php 从数组中检索数据
我有一个小问题,我的代码存储该值并可以像往常一样运行,但当我想再次显示它时,该值将不会显示,错误是: 注意:未定义的变量:第91行的c:\xampp\htdocs\eAttendance\********php中的result_c 即: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调用中,从而
<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>