PHP提交ID问题

weixin_41407407 2018-05-27 02:29:56
我的代码如下
<?php 
include_once("conn/conn.php");
$cx="select * from user order by id desc";
$zx=mysqli_query($conn,$cx);
$bb=mysqli_fetch_row($zx);
if (isset($_POST['submit'])){
//判断输入的用户名 , 密码是否为空
if(isset($_POST['name']) & $_POST['pw']==""){
echo "用户名和密码不能为空"."<a href='index.php'><h1><script>document.write('点击返回')</script></h1></a>";
}else{
if ($_POST['pw'] == $_POST['repw']){ //判断两次输入的密码是否一致
$query = "insert into user (name,pw) values('{$_POST['name']}','{$_POST['pw']}')";
$result=mysqli_query($conn, $query);
echo "<center>添加成功:<a href=select.php?action=select&id=".$bb[0].">点击查询</a></center>";
}else {
echo "两次密码不一致"."<a href='index.php'><h1><script>document.write('点击返回')</script></h1></a>";
}
}
}
发现每次查询后显示的都是我上一个记录, 不知道哪里出问题了呢?
下面是我查询的另一段PHP,不知道有没有帮助[code=php
<?php
require_once("conn/conn.php");
if($_GET['action']=="select"){
$cx="select * from user where id=".$_GET['id'];
$zx=mysqli_query($conn,$cx);
$bb=mysqli_fetch_row($zx);
}

?>
[/code]
...全文
804 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小温LLT 2018-05-28
  • 打赏
  • 举报
回复
你数据都还没写入呢,你就直接查询,能查到什么呢?
一生小白 2018-05-28
  • 打赏
  • 举报
回复
<?php 
include_once("conn/conn.php");
    $cx="select * from user order by id desc";
    $zx=mysqli_query($conn,$cx);
    $bb=mysqli_fetch_row($zx);
  if (isset($_POST['submit'])){
            //判断输入的用户名 , 密码是否为空
            if(isset($_POST['name']) & $_POST['pw']==""){
                 echo "用户名和密码不能为空"."<a href='index.php'><h1><script>document.write('点击返回')</script></h1></a>";
            }else{
                if ($_POST['pw'] == $_POST['repw']){            //判断两次输入的密码是否一致
                   $query = "insert into user (name,pw) values('{$_POST['name']}','{$_POST['pw']}')";
                   $result=mysqli_query($conn, $query);
                   echo "<center>添加成功:<a href=select.php?action=select&id=".$result[0].">点击查询</a></center>";
                }else {
                    echo "两次密码不一致"."<a href='index.php'><h1><script>document.write('点击返回')</script></h1></a>";
                } 
            }  
        }
         
  • 打赏
  • 举报
回复
$bb[0]肯定是上一条数据了 ! 因为你在当前这条数据还没添加成功之前已经在 查询数据了 ! 试试这样
include_once("conn/conn.php");
        if (isset($_POST['submit'])){
            //判断输入的用户名 , 密码是否为空
            if(isset($_POST['name']) & $_POST['pw']==""){
                echo "用户名和密码不能为空"."<a href='index.php'><h1><script>document.write('点击返回')</script></h1></a>";
            }else{
                if ($_POST['pw'] == $_POST['repw']){            //判断两次输入的密码是否一致
                    $query = "insert into user (name,pw) values('{$_POST['name']}','{$_POST['pw']}')";
                    $result=mysqli_query($conn, $query);
                    if( $result ){
                        //添加成功后,查询数据
                        $cx="select * from user order by id desc";
                        $zx=mysqli_query($conn,$cx);
                        $bb=mysqli_fetch_row($zx);
                        echo "<center>添加成功:<a href=select.php?action=select&id=".$bb[0].">点击查询</a></center>";
                    }else{
                        echo "注册失败,请重新操作"."<a href='index.php'><h1><script>document.write('点击返回')</script></h1></a>";
                    }

                }else {
                    echo "两次密码不一致"."<a href='index.php'><h1><script>document.write('点击返回')</script></h1></a>";
                }
            }
        }
sunsijia21983 2018-05-28
  • 打赏
  • 举报
回复
兄弟 你是来搞笑的吗 你的查询在上面 你是先查询 再插入 所以查询的肯定是你上次的记录啊
yt_php 2018-05-27
  • 打赏
  • 举报
回复
$bb[0]是后面代码执行之前执行的,当然不正确了。 最好是在添加完成后紧接着运行下面这段代码 $id= mysqli_insert_id($conn); 获取最后插入的id(需要表中id自增长)
weixin_41407407 2018-05-27
  • 打赏
  • 举报
回复
引用 1 楼 yt_php 的回复:
问题需求不明确,看不懂啥意思
就是我这个是个简易的注册页面,注册完后会跳到你当时输入的账号密码页面,页面会自动获取注册后的ID,然后执行sql查询语句查询当时注册账号生成的ID。假如我第一次注册后数据库的ID是1,我查询后是出错的,然后我又注册了个ID为2的,他却查询到ID为1的去了
yt_php 2018-05-27
  • 打赏
  • 举报
回复
问题需求不明确,看不懂啥意思

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧