请帮忙看一段PHP代码,为何获取不到数据,高手请进..

<?
$tid=(int)$_GET['tid'];
$title = $_GET['title'];

if($_SERVER['REQUEST_METHOD']=='POST')
{

$Name = $_POST['Name'];
$event_id;

$link = sql_open();
$res = sql_query("SELECT * FROM event WHERE `id`='$tid'", $link);
$row = sql_fetch_row($res);
if($row!==FALSE)
{
$event_id=$row[0];
sql_free_result($res);
}

sql_query("INSERT INTO event_register (`eventid`,`fullname`) VALUES ('$event_id','$Name'", $link);
sql_close($link);
?>

<!--以下是post name代码不贴了-->

我var_dump eventid为 null,插入数据后还是null. 为什么啊?但是tid又有值.就连 event_id=$_GET['tid']; event_id都是null....彻底迷糊了!!望高手解答
我在页面中var_dump $tid 是可以看到值,这说明get没错.
1楼大侠".$tid.",加2点结果还是一样.同时单引号是要加的.不加出错

2楼大侠你说数据库连接问题.我name值可以正常写入,但是event_id就是0

3楼大侠我在仔细找了没有第二个tid啊,就算我改成bid结果也是一样的.

总之就是好像 tid要赋值给event_id就会变成null.我同意也怀疑
if($row!==FALSE)
{
$event_id=$row[0];
sql_free_result($res);
}
有问题,但是我看不懂这三句是什么意思,同时我也看不懂为什么
$Name = $_POST['Name'];
$event_id; <----这句是什么意思?

你是POST过来的代码.
$tid=(int)$_GET['tid'];
$title = $_GET['title'];
就取不到值了.
这种情况应该在表单隐藏两个hidden的input存储tid及title
$tid有值是不是0啊?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-10
$res = sql_query("SELECT * FROM event WHERE `id`='$tid'", $link);这一句可能应该是:
$res = sql_query("SELECT * FROM event WHERE id='".$tid."'", $link);
没有试验,不过怀疑:
sql_query("INSERT INTO event_register (`eventid`,`fullname`) VALUES ('$event_id','$Name'", $link);这部分中的变量的单引号不知道是不是要加。你可以试试。
第2个回答  2010-05-10
既然$tid是有值的那么这样赋值event_id=$_GET['tid']; event_id 则肯定有值了。但是你的 $event_id=$row[0]; 是这样的。所以错误就在
$link = sql_open();
$res = sql_query("SELECT * FROM event WHERE `id`='$tid'", $link);
$row = sql_fetch_row($res);
这三句里面了。

1、查看你的数据库是否正确连接了。
2、数据库操作方法是否正确。
3、检查sql代码。 id = '$tid' id是int型则不需要加上单引号的。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网