【问题标题】:How to check the condition using xls file in php如何在php中使用xls文件检查条件
【发布时间】:2017-02-03 07:19:56
【问题描述】:

这里我在 php 中使用 xls 文件阅读器,它工作正常,我已经制作了一个逻辑,xls 文件我正在获取徽章编号(4565)和月份(01-2017)现在我想检查徽章编号并且月份已经存在数据或不存在,假设数据是exixts意味着我不应该允许插入新记录,假设不退出意味着我想允许插入新记录,该怎么做,我因为xls表而感到困惑。

<?php
include 'excel_reader.php';// include the class
$groupfile ='test.xls';
$excel = new PhpExcelReader;
$excel->read($groupfile);
function sheetData($sheet) {
    $result = ''; 
    $row = 2;
    while($row <= $sheet['numRows']) {
        $id = isset($sheet['cells'][$row][1]) ? $sheet['cells'][$row][1] : ''; 
        $loan_month = isset($sheet['cells'][$row][2]) ? $sheet['cells'][$row][2] : ''; 
        $badge_number = isset($sheet['cells'][$row][3]) ? $sheet['cells'][$row][3] : '';
        $name = isset($sheet['cells'][$row][4]) ? $sheet['cells'][$row][4] : '';
        $pf_amount = isset($sheet['cells'][$row][5]) ? $sheet['cells'][$row][5] : '';
        $loan_amount = isset($sheet['cells'][$row][6]) ? $sheet['cells'][$row][6] : '';
        $date_format=date('d/m/Y');
        $status=0;
        $explode_date=explode("/",$loan_month) ;
        $month = $explode_date[1].'-'.$explode_date[2] ;
        $sql = mysql_query("INSERT INTO loan_history(pf_month,badge_number,first_name,pf_amount,loan_amount,reg_date,status)VALUES('$month','$badge_number','$name','$pf_amount','$loan_amount','$date_format','$status')");
        if($sql){
            echo "success" ;
        }else{
            echo mysql_error();
        }  
        $row++;
    }
}
$nr_sheets = count($excel->sheets);
for($i=0; $i<$nr_sheets; $i++) { 
    sheetData($excel->sheets[$i]);
}
?>

【问题讨论】:

  • 那么数据库中有一个表,其中“badge_number”和“month_year”是主要列?
  • 我的要求是相同的月份和相同的 badge_number 然后我只想停止,假设相同的 badge_number 但月份不同意味着我想插入值怎么做

标签: php filereader phpexcelreader


【解决方案1】:

如果有错误,请纠正我,但我知道您的约束使其非常适合在表上创建多列主键。

  1. 你对表做了一个新的约束:

    ALTER TABLE foo
    ADD CONSTRAINT pk_badge_month PRIMARY KEY (badge_number, month)
    
  2. 现在您可以执行我们所说的 upsert,它比读取并决定我们是否需要更新或插入要好得多。

    INSERT INTO foo (badge_number,month,other_column) VALUES (1,'one','won'), (2,'two','too')
    

【讨论】:

  • 我的要求是相同的月份和相同的 badge_number 然后只有我想停止,假设相同的 badge_number 但月份不同意味着我想插入值如何做到这一点
  • 查看已编辑,基本上如果您有 de DB 为您管理这个,您的生活会更轻松。以防您可以访问数据库并对其进行管理
  • 你能更新我的答案吗,我不能给你请
  • 能否修改数据库表结构或约束?
  • 我没有更改任何内容,因为唯一的 badge_number 可以在不同月份插入多次
猜你喜欢
  • 2016-02-22
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 2017-05-07
  • 2013-10-25
  • 2017-07-21
  • 1970-01-01
相关资源
最近更新 更多