php中未定义的偏移量错误

时间:2010-05-05 08:31:29

标签: php mysql html

我不知道为什么,但是当我有不同的查询时,下面的代码正常工作:

$result = mysql_query("SELECT * FROM student WHERE IDNO='".$_GET['id']."'")
   ?>
<?php while ( $row = mysql_fetch_array($result) ) {

    ?>
     <?php list($year,$month,$day)=explode("-", $row['BIRTHDAY']); ?>
    <tr>
    <td width="30" height="35"><font size="2">Month:</td>
    <td width="30"><input name="mm" type="text" id="mm"  onkeypress="return handleEnter(this, event)" value="<?php echo $month;?>">

    <td width="30" height="35"><font size="2">Day:</td>
    <td width="30"><input name="dd" type="text" id="dd" maxlength="25"  onkeypress="return handleEnter(this, event)" value="<?php echo $day;?>">

    <td width="30" height="35"><font size="2">Year:</td>
    <td width="30"><input name="yyyy" type="text" id="yyyy" maxlength="25"  onkeypress="return handleEnter(this, event)" value="<?php echo $year;?>">

当这是我的查询时它会起作用:

$idnum = mysql_real_escape_string($_POST['idnum']);

mysql_select_db("school", $con);
  $result = mysql_query("SELECT * FROM student WHERE IDNO='$idnum'");

请帮忙,为什么我在使用此查询时会收到未定义的偏移量错误:

$result = mysql_query("SELECT * FROM student WHERE IDNO='".$_GET['id']."'")

我认为查询是问题,因为它是两者之间唯一不同的东西。

3 个答案:

答案 0 :(得分:2)

你错过了一个分号;

$result = mysql_query("SELECT * FROM student WHERE IDNO='".$_GET['id']."'") ;?>

还要确保您获得了身份证明:

var_dump($_GET);

它名为id或其他名称。

你可能会这样:

if ($_GET['id'])
{
   // your further code.......
}

根据评论进行更新

确保日期正常,请尝试:

print_r($row['BIRTHDAY']);

并查看是否所有内容都已出现或是空的。

答案 1 :(得分:0)

您是否显示所有错误?

检查$ _GET数组中是否存在名为“id”的索引。

答案 2 :(得分:0)

是否定义了$_GET['id']?在您认为有效的第一个查询中,您使用的是$_POST['idnum'],这是一种不同的请求方法和不同的密钥。未定义的偏移量是一个非致命错误/警告,告诉您数组中不存在该键。解决此问题的一种简单方法是更改​​PHP错误报告,但在这种情况下,您需要确定实际需要使用的变量。