这个问题困扰我好几天了 就是下面图片中演示的 在表单里填上数据提交后跳转到查询页面却显示不出来刚刚插入的数据 数据库里面已经插入了 但是如果单独打开数据查询的页面却可以显示出来 谁能帮帮我呢
下面是我的代码 大家可以试一试 一开始我还以为是缓存的问题 换了几个浏览器都是这样
第一个页面 提交的
<html>
<body>
<form action="insert2.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
第二个页面 插入的
<?php
$con =mysql_connect("localhost","root","");; //mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("t1", $con);
$sql="INSERT INTO stu(id, name, num)
VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "<script>alert('发布成功');location='cx2.php';</script>";
mysql_close($con)
?>
第三个页面 查询的 也就是这个页面 如果单独打开这个页面就能显示刚刚插入的数据 但是跳转过来的页面就显示不出来 就像图片里的一样 真是奇怪
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
echo "连接数据库失败";
exit;
}
$sql='use t1';
mysql_query($sql,$con);
$sql='select*from stu';
$rs=mysql_query($sql,$con);
$list=array();
while($row=mysql_fetch_assoc($rs)){
$list[]=$row;
}
echo '$sql'
?>
<html>
<head>
<style type="text/css">
li{list-style: none;display: block;float: left;}
ul{both:clear;}
</style>
</head>
<body>
<div>
<ul>
<li>学号</li>
<li>姓名</li>
<li>年龄</li>
</ul>
<ul>
<?php
foreach($list as $v){
echo '<li>'.$v['id'].'</li>';
echo '<li>'.$v['name'],'</li>';
echo '<li>'.$v['num'].'</li>';
echo '<li><a href="1.php?id='.$v['id'].'">编辑</a></li>';
}
?>
</ul>
</div>
</form>
</body>
</html>
应该是你版本的问题吧,你可以在mysql_connect前面加上@,我用你的源码,在本地测试一切正常并不会提示有错。但是这不是积极的办法,我建议你升级版本,也可以说说你用的mysql是哪个版本的。
<?php
header('Content-type:text/html;charset=utf-8');
$con =@mysql_connect("localhost","root",""); //mysql_connect("localhost","root","");
?>
用header做跳转header('Location:xxx.php'),看错误,好像是版本问题