我在mysql中有下表:
表名:所有项目
item_no qty
1l900fu 1
1l950be 2
1l1000bk 3
1l1020rd 5
1l1200fu 7
我需要做两个选择,其中它应该输出两个不同的csv文件,如下所示:
CSV file 1 CSV file 2
item_no qty item_no qty
1l900fu 1 1l1000bk 3
1l950be 2 1l1020rd 5
1l1200fu 7
根据上表,字符串包含数字和字母,因此我考虑了执行
strlen
,但我不确定如何将其放在查询语句中://CSV file 1
$result = mysql_query("SELECT item_no, qty FROM all_items ORDER BY item_no Asc");
//Excuting Values from Mysql to CSV
$row = 1; // 1-based index
while($row_data = mysql_fetch_assoc($result)) {
$col = 0;
//Row Values
foreach($row_data as $key=>$value) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
$col++;
}
$row++;
}
你知道它是怎么工作的吗?我想根据
item_no
分离strlen
。对不起,我不太熟悉php。请帮忙!
最佳答案
图样:1L900FU
两个字符,后跟数字,后跟一些字母。
使用substr()
获取前两个字母后的字符串。
那你就有九百福了。
然后使用正则表达式只获取它遇到的第一个alpha之前的数字,但不包括它遇到的第一个alpha。这就留给你:
900。
然后使用intval()
创建两个数组,如果intval()
小于1000,则推到第一个数组,否则推到第二个数组。
根据需要从这两个数组生成输出。
或者出于某种原因,您必须在mysql中执行所有操作吗?