问题:在我的数据库上执行此查询时需要存储字段值。有几页使用相同的语法,但由于一些奇怪的原因,这不合作..
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);
?>
答案 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
以外的其他名称。