Php未定义索引,存储变量时

时间:2011-08-30 18:27:19

标签: php mysql

问题:在我的数据库上执行此查询时需要存储字段值。有几页使用相同的语法,但由于一些奇怪的原因,这不合作..

HTML

    <form method="post" action="listPage.php">  
    <fieldset>  
    <legend>Pull some data</legend>  
    <label for="name">Name</label>  
    <input type="text" name="name" id="name" maxlength="255" /> 
    <hr />  
    <br />
    <input type="submit" value="find event" /> 
    </fieldset>  
    </form>

listPage.php

<?php

//CONNECT TO DATABASE
$user="root";
$password="";
$database="db";
$connection=mysql_connect('localhost',$user,$password);
@mysql_select_db($database) or die( "Unable to select database");

echo "NOT running...";

//STORE ALL DATA FROM PREVIOUS FORM
if (isset($_POST['name'])) {
  $name = mysql_real_escape_string($_POST['name']);

  $query="SELECT event FROM events WHERE event='$name'";  
  $result=mysql_query($query) or die(mysql_error());  
  $num=mysql_numrows($result);

    echo "running...";

  while ($row = mysql_fetch_array($result)) 
  {  
    echo $row['event'] . " // ";
    echo "<br />";
  }  
}

mysql_close($connection);  
?> 

2 个答案:

答案 0 :(得分:0)

在对其进行任何操作之前,请检查是否设置了post值。 (另外,别忘了给它打电话mysql_real_escape_string())。

如果此代码在最初加载时出现在页面上,或者在将数据发布到页面后刷新,则可能无法设置。

// Don't attempt any of this unless you actually have a $_POST value
if (isset($_POST['name'])) {
  $name = mysql_real_escape_string($_POST['name']);

  $query="SELECT event FROM events WHERE event='$name'";  
  $result=mysql_query($query) or die(mysql_error());  
  $num=mysql_numrows($result);

  while ($row = mysql_fetch_array($result)) 
  {  
    echo $row['event'] . " // ";
    echo "<br />";
  }  
}

答案 1 :(得分:0)

我无法快速找到有关POST或html表单变量的可能保留字的任何文档,所以我去了

http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_form_method_post

并将fname字段更改为name,(点击edit and click me button)并且未传递或识别POST变量。

因此,您可以考虑将字段名称更改为name以外的其他名称。