虽然循环执行不止一次时没有正确插入数据

时间:2016-08-31 06:35:49

标签: php mysql while-loop

虽然循环工作准确第一次但是当它执行第二次或多次时它只保存一行的行而不是按名称选择字段,因为我试图提醒字段值。 这是我的代码

if (isset($_POST['submit'])) {
    $vnumber=$_POST['number'];
    $ex_rate=$_POST['xrate'];
    $acc_code=$_POST['code1'];

    $y = mysql_query("SELECT * from accounts where CODE='$acc_code'");
    $j = mysql_fetch_array($y);

    $acc_name=$j['NAME'];
    $entry_date=$_POST['edate'];
    $voucher_date=$_POST['vdate'];

    $va=$_POST['hfield']-1;

    $counter=1;

    while ($counter<=$va) {
        $scode=$_POST['acccode'.$counter];

        echo '<script>alert('.$scode.')</script>';

        $yy = mysql_query("SELECT * from accounts where CODE='$scode'") or mysql_error();
        $jjj = mysql_fetch_array($yy);
        $sname=$jjj['NAME'];

        echo '<script>alert("do it")</script>';
        echo '<script>alert('.$sname.')</script>';

        $lamount=$_POST['local-amount'.$counter];

        echo '<script>alert('.$lamount.')</script>';

        $usd=$_POST['usd'.$counter];
        $remark=$_POST['comment'.$counter];
        $serial=$counter;

        $insert2=mysql_query("insert into sender(SA_CODE,SA_NAME,L_AMOUNT,USD,REMARK,SR_NBR)value('$scode','$sname','$lamount','$usd','$remark','$serial')") or mysql_error();
        $counter++;
        echo '<script>alert('.$counter.')</script>';
    }//while

    $insert=mysql_query("insert into reciever(ENTRY_DATE,VOUCHER_DATE,EX_RATE,CODE,ACC_NAME,NUM) values('$entry_date','$voucher_date','$ex_rate','$acc_code','$acc_name','$vnumber')") or mysql_error();
    echo('<script>alert("Submitted")</script>');
    printf("<script>location.href='voucher3.php'</script>");
}

以下是插入一行时更多数据库的行为方式 PHPMyAdmin Result

1 个答案:

答案 0 :(得分:0)

$scode=$_POST['acccode'.$counter];  

我猜你一定要添加acccode&amp;反获得权利 scode = acccode + counter 但是你从帖子得到的acccode的值是字符串,因此它没有给出你想要的整数 因为HTTP上的所有值都是字符串或二进制文件 所以你必须先将值转换为整数然后再添加它。

(int)$_POST['scode']