php - 字段 is_add(tinyint(1)),行不会显示

标签 php mysql

我的代码有什么问题吗?由于 $is_add,行不会显示。但是当我将其更改为 $tot_shrs_amt 时,行会显示,并且 is_add 的值为 1

case "Compute":
    $is_add = $tot_shrs_amt.$bnfts.$dvdnd.$loan.$grcery.$life_insrnce.$funeral_pln.$flu_vccne.$eye_glss;

    $tot_shrs_amt  = $_POST['total_shares_amount'];
    $bnfts         = $_POST['benefits'];
    $dvdnd         = $_POST['dividend'];
    $coop_shrs     = $_POST['coop_shares'];
    $loan          = $_POST['loan']; 
    $grcery        = $_POST['grocery'];
    $life_insrnce  = $_POST['life_insurance'];
    $funeral_pln   = $_POST['funeral_plan'];
    $flu_vccne     = $_POST['flu_vaccine'];
    $eye_glss      = $_POST['eye_glass'];
    $tot_ddctns    = $_POST['total_deductions'];

    if($tot_shrs_amt){
        $tot_shrs_amt  = 1;
    }
    if($bnfts){
        $bnfts         = 1; 
    }
    if($dvdnd){
        $dvdnd         = 1;
    }
    if($coop_shrs){
        $coop_shrs     = 1;
    }
    if($loan){
        $loan          = 0;
    }
    if($grcery){
        $grcery        = 0;
    }
    if($life_insrnce){
        $life_insrnce  = 0;
    }
    if($funeral_pln){
        $funeral_pln   = 0;
    }
    if($flu_vccne){
        $flu_vccne     = 0;
    }
    if($eye_glss){
        $eye_glss      = 0;
    }
    if($tot_ddctns){
        $tot_ddctns    = 0;
    }

    $coopmemID = $_POST['coopmemID'];
    $emp_no = trim($_POST['emp_no']);
    $coop_shares = $_POST['total_share'];
    $total_deductions = $_POST['total_deductions'];
    $net_amount = $_POST['net_amount'];
    $date_resigned = $_POST['date_resigned'];
    $rep1 = str_replace(",", "", $coop_shares);
    $rep2 = str_replace(",", "", $total_deductions);
    $rep3 = str_replace(",", "", $net_amount);
    $sql = "INSERT INTO tb_finalpay (coopmemID, emp_no, total_share, total_deduct, net_amount, date_released, date_resigned) VALUES ('$coopmemID','$emp_no','$rep1','$rep2','$rep3','".date('Y-m-d')."', '$date_resigned')";
    $result = $atecCoop->query($sql);
    $insert = $atecCoop->insert_id;

    $sql2 = "SELECT
                p.fpayID, m.cooploanID, YEAR(p.date_resigned) as date_resigned
            FROM
                tb_cooploan_master as m
            INNER JOIN
                tb_finalpay as p
            ON
                m.coopmemID = p.coopmemID
            WHERE
                clmstID!='NULL' AND p.coopmemID='$coopmemID'";
    $result = $atecCoop->query($sql2);
    while ($row = $result->fetch_object()){
        $cooploanID = $row->cooploanID;
        $fpayID = $row->fpayID;
        $date_resigned = $row->date_resigned;
        $sql3 = "INSERT INTO tb_finalpay_detail (fpayID, cooploanID, syear, is_add) VALUES ($fpayID, $cooploanID, $date_resigned, $is_add)";
        $atecCoop->query($sql3);
    }
break;

我认为问题就在这里。

$is_add = $tot_shrs_amt.$bnfts.$dvdnd.$loan.$grcery.$life_insrnce.$funeral_pln.$flu_vccne.$eye_glss;

最佳答案

您正在使用 string concatenation operator$is_add 将是使用点运算符连接一些变量后的字符串。请看这个例子:

$a = 0;
$b = 1;
$c = 1;
$d = 0;

$e = $a.$b.$c.$d;

var_dump($e);

打印出string(4)“0110”。因此,您的 $is_add 很可能不是 0 或 1。在插入之前尝试 var_dumping $is_add 并检查其值。

如果$is_add需要为0或1,那么您需要使用 bool 运算符。你可以尝试这样的事情:

$is_add = $tot_shrs_amt || $bnfts || $dvdnd || $loan || $grcery || $life_insrnce || $funeral_pln || $flu_vccne || $eye_glss;

这样,如果其他变量之一的计算结果为 1,$is_add 将为 1。否则将为 0。

关于php - 字段 is_add(tinyint(1)),行不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33516836/

相关文章:

mysql - 如何修复 mySQL 查询以查找与每个日期的总计数(包括零)映射的所有月份日期?

php - 在 div 中心垂直和中心水平对齐标签和图像

mysql - 如何在 iOS 中处理 Windows-1252 字符?

php - PDO 有效 SELECT 和 INSERT

PHP、MySQL : How to get the user's first and last name

MySQL简单本地化

php - 如何在脚本运行时逐步回显对用户的响应?

php - 如何将关联数组的 PHP 数组传输到 javascript?

php - 迁移时无法再使用 ocramius/proxy-manager 在 Symfony 中进行迁移吗?

javascript - RatchetPHP 没有用于新连接的 WebSocket 属性