【问题标题】:Display current import file (html table form) from database into cakephp从数据库显示当前导入文件(html表格形式)到cakephp
【发布时间】:2014-06-26 03:49:24
【问题描述】:

Cakephp 2.5.1版本,导入文件(csv格式),数据库(mssql)

我已导入 csv 文件并保存到数据库中,保存后我想使用 cakephp 中的 html 表显示每个“当前”导入数据。我的问题是我不知道为查找当前批次上传而编写代码,其中每个批次的起点都是 L01-0-00-00-000 直到 L01-0-00-00-999 结束。每个字符串上的 L01 将更改为 L02、L03 等等。

我尝试在 mycontroller 中使用此功能,它只会显示 Line=01 的所有表格

我的控制器: function index () { $this->set('uploads', $this->Upload->getColumnTypes('all', array('conditions' => array('RAS_Off_Upload.RAS_Code' => ' L01-0-00-00-000' && ' L01-0-00-00-999' )))); }

感谢您的任何建议。

数据库中的输出表: RAS_Off_Upload 表

No  RAS_Code         Value  Remark  SF  Create_by  CLN       Lot       Prod  Time Date

1   L01-0-00-00-000   0     test    H   D123     CLN12345   SLTC123M  LN2CPW 7:10 25JUN
2   L01-1-01-01-111  68     test    L   D123                                 7:15 25JUN
3   L01-0-01-01-222  40     test    L   D123                                 7:18 25JUN         
4   L01-0-01-01-333  82     test    L   D123                                 7:20 25JUN
5   L01-0-00-00-444  59     test    L   D123                                 7:21 25JUN
6   L01-0-00-00-555  59     test    L   D123                                 7:23 25JUN
7   L01-0-00-00-666  59     test    L   D123                                 7:34 25JUN
8   L01-0-00-00-777  59     test    L   D123                                 7:37 25JUN
9   L01-0-00-00-888  59     test    L   D123                                 7:40 25JUN
10  L01-0-00-00-999   0     test    E   D123                                 7:41 25JUN

【问题讨论】:

  • 数据库中保存的格式是什么?您是序列化所有记录并保存在 1 列中还是在多列中保存多行?
  • 格式为csv文件。我有 9 个位置运行此进程。每个进程运行并保存在 1 个批处理文件中。每批文件的序列号从 L01-0-00-00-000 到 L01-0-00-00-999 结束。例如,第一个位置的批次序列号从 L01-0-00-00-000 到 L01-0-00-00-999 结束,然后第二个位置的批次序列号从 L02-0-00-00- 000 直到 L02-0-00-00-999 结束,依此类推。所以我决定通过识别字符串 L01-0-00-00-000 的开始和结束 L01-0-00-00- 来查找每个输入的批次999.跨度>
  • 记录是否保存在Line列?如果您可以将结果发布到输出中,那就更好了。
  • 好的,我会再次编辑我的问题。谢谢!
  • 编辑的表格显示了第一个位置的批处理文件。

标签: php sql sql-server cakephp


【解决方案1】:

我正在考虑 RasOffUpload 是您的模型对应于RAS_Off_Upload 表。

尝试以下方法:

function index () { 
    $this->set('uploads', $this->RasOffUpload->find('all', 
                array('conditions' => array('RasOffUpload.RAS_Code REGEXP' => '^L01-0-00-00-[0-9]*$')))); 
}

使用find 方法代替getColumnTypes。您也可以尝试使用^L01-0-00-00-[[:digit:]][[:digit:]][[:digit:]]$

如果中间的数字也是从 0 到 9 不等,那么你可以像这样使用: ^L01-[[:digit:]]-00-00-[[:digit:]][[:digit:]][[:digit:]]$.

【讨论】:

  • 感谢您的评论!我已经尝试过了,但我的框架中没有显示任何内容。我需要在我的视图 ctp 文件中添加一些内容吗?
  • 抱歉回复晚了,两种方法我都试过了,但是都不行,会显示 Error: SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]在预期条件的上下文中指定的非布尔类型表达式,靠近“REGEXP”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多