如何使用php将会话增量值插入数据库表?

如何使用php将会话增量值插入数据库表?,php,mysql,session,Php,Mysql,Session,我需要将会话增量值插入数据库,在这里我可以增加值,如00010002等,但问题是我无法将这些增量值插入数据库表 有人能帮我解决这个问题吗 这是我的密码: <?php $username="root"; $password="sha12345"; $hostname="localhost"; $dbhandle = mysql_connect($hostname,$username,$p

我需要将会话增量值插入数据库,在这里我可以增加值,如00010002等,但问题是我无法将这些增量值插入数据库表

有人能帮我解决这个问题吗

这是我的密码:

    <?php
            $username="root";
            $password="sha12345";
            $hostname="localhost";

            $dbhandle = mysql_connect($hostname,$username,$password) or die("Could not connect to database");

            $select = mysql_select_db("sha", $dbhandle);
            session_start();
 if(!isset($_SESSION['rid']))$_SESSION['rid']=0;
            if(!empty($_POST['register']))
        {   
            $_SESSION['rid'] = $_SESSION['rid']+ 1;
            $input = $_SESSION['rid'];
            str_pad($_SESSION['rid'], 4, "0", STR_PAD_LEFT);

            $calender=$_POST['datum1'];
            $time=$_POST['timepicker_6'];
    mysql_query("INSERT INTO receipt(Bill_number,Date,Time) VALUES ('{$_SESSION['rid']}','$calender','$time')");
    require("fpdf/fpdf.php");

        $pdf=new FPDF();
        $pdf->Addpage();
    $pdf->SetFont("Arial","B",18);
        $pdf->Cell(0,10,"Receipt number:". str_pad($_SESSION['rid'], 4, "0", STR_PAD_LEFT),0,0,'C');
        $pdf->SetFont("Arial","B",18);
        $pdf->cell(0,10,"Date:{$calender} ",0,1,'R');  
        $pdf->cell(0,10,"Time:{$time}",0,1,'R');
    $pdf->output();

        }
    ?

您已在
$\u会话['rid']=$\u会话['rid']+1中获取会话值这一行,但只有在页面刷新后才能获得新的会话值,所以它不会在这里发生,所以最后您要将
$\u session['rid']
变量中可用的旧值传递给查询。请看下面给出的解决方案

  $IncrementValue = $_SESSION['rid']+ 1;
并将查询中的
{$\u会话['rid']}
替换为
$IncrementValue
。现在,您的查询将如下所示:

mysql_query("INSERT INTO 
             receipt(Bill_number,Date,Time) 
             VALUES ($IncrementValue,$calender,$time)
            ");
您还需要在下面的行中进行更改

  str_pad($IncrementValue, 4, "0", STR_PAD_LEFT);
希望这对您有所帮助。

请检查:

  • 票据编号
    varchar
    类型
  • 您应该有
    session_start()在PHP脚本的开头,否则您的会话变量将被视为局部变量
  • 在传递到
    mysql\u query
    之前准备查询,然后打印它

  • 此外,您还可以替换
    $\u会话['rid']=$\u会话['rid']+1
    $\u会话['rid']++在您的代码中。

    使用
    mysqli
    PDO
    而不是不推荐的
    mysql
    等。在进入
    mysql\u query
    之前,请准备好查询,然后打印出来。
    Bill\u number
    列是varchar类型?好的,谢谢Apul Gupta,不,我被用作列Bill_number作为int类型。会话变量可以在同一页上使用。@Kyslik-我按照你告诉我的那样编辑,但它出现了错误,如未定义的未定义索引:rid。实际上,为了便于你理解,我再次编辑了我的程序。你能检查一下并告诉我吗。真的谢谢..谢谢Apul Gupta,OK,我忘了添加会话_start();在PHP开始上传时,对不起:(,现在我正确地编辑了我的程序,你能再次检查并告诉我正确的方法吗。始终在脚本开始时保持
    session\u start