0

这是我正在处理的代码:

<?php
include('../connect.php');
$id=$_SESSION['SESS_FIRST_NAME'];
$results = mysql_query("SELECT * FROM advisory WHERE     tid='$id'");
while($rows = mysql_fetch_array($results))
{
    $sdsdsd=$rows['level'];
    $sdsd=$rows['section'];
}

echo '<input type="hidden" value="'.$sdsdsd.'" name="level" />';
echo '<input type="hidden" value="'.$sdsd.'" name="section" />';
echo '<input type="hidden" value="'.$id.'"     name="tidsss" />';
$result = mysql_query("SELECT * FROM prereg WHERE     level='$sdsdsd' AND  section='$sdsd'");
while($row = mysql_fetch_array($result))
{
    echo '<tr class="record">';
    echo '<td  style="border-left: 1px solid     #C1DAD7">'.$row['fname'].'   '.$row['mname'].' '.$row['lname'].'</td>';
    echo '<td><div align="left"><input     type="hidden" value="'.$row['idnumber'].'"  name="idnumber[]" /><input type="hidden"     value="'.$row['schoolyear'].'"  name="schooly[]" /><input type="text" name="grade[]" />    </div></td>';
    echo '</tr>';
}
?> 

我不明白为什么$sdsdsd变量未定义?

4

5 回答 5

1

可能是因为您的请求没有返回任何内容。

所以你的while循环永远不会执行,你的变量永远不会定义。

您应该在循环之前初始化它们。

<?php
// […]
$sdsdsd = null;
$sdsd = null;
while($rows = mysql_fetch_array($results))
{
     $sdsdsd=$rows['level'];
     $sdsd=$rows['section'];
}
// […]
?>

注意:顺便说一下,这些对变量来说真的很糟糕。变量的名称应简要说明它们包含的内容或它们的用途等。

于 2013-04-23T06:36:03.313 回答
0

由于您在循环内部设置这些变量while并在外部使用它们,因此可以肯定的是,您实际上根本没有进入while循环。

您需要检查返回值mysql_fetch_array- 如果它是错误的,那么您的查询以某种方式失败。我要做的第一件事是输出$id以查看查询中使用的内容。

于 2013-04-23T06:35:48.087 回答
0

你忘记了session_start();,因为这个声明失败了

$id=$_SESSION['SESS_FIRST_NAME'];

因为此语句失败并$id变为NULL并且您的查询没有给出结果。

于 2013-04-23T06:36:15.707 回答
0

确定有受影响的行吗?当没有行时,您不设置变量$sdsdsd$sdsd. 试一试var_dump$rows调试!

于 2013-04-23T06:36:43.083 回答
0

您应该学习先声明变量然后使用它,目前您在内部分配变量 $sdsdsd 而它在外部永远不可用。因此在while循环之前贴上它

$sdsdsd = "";
$sdsd    = "";
于 2013-04-23T06:46:34.510 回答