繁体   English   中英

如何在php的csv文件中添加sql oracle查询的结果?

[英]How to add the results of a sql oracle query in a csv file in php?

我有一个连接到 oracle 数据库的 php 代码,并请求检索我想要的信息,这是我的代码:

$query = "SELECT ACTIVE_SIZES FROM ADA_ACTIVE_SIZE2_VIEW WHERE ADA_STYLE = 'SCPCL4'";  
$result = odbc_exec($connect, $query);
  
   while($final = odbc_fetch_array($result)) {
        
         print_r($final); //Array ( [ACTIVE_SIZES] => XS-S-M-L-XL-2XL )
        
       } 

现在我正在读取一个 csv 文件,我想修改此代码以在文件末尾的列中添加我的查询结果。 我已经在这一列的末尾添加了两列,但我的查询在 csv 文件中没有返回任何内容,请问我该怎么做?

<?php 
//Modifications on csv file
$delimiter = ";"; 
$csv_data = array();
if (($handle = fopen($nomcsv, 'r')) !== FALSE) {
    while (($data = fgetcsv($handle, 10000, $delimiter)) !== FALSE) {
        //Add two columns at the end
        $data['Pictures Names'] = (!empty($data[4]) ? ($data[7] ?: '') . "_" . $data[4] . '.jpg' : ''); 
        $data['Color-Description'] = (!empty($data[3]) ? (ltrim($data[4], '0') ?: '') . "-" . $data[3] : '');  
        
        //Query
        $query = "SELECT ACTIVE_SIZES FROM ADA_ACTIVE_SIZE2_VIEW WHERE ADA_STYLE = '".$data[4]."'";
        $result = odbc_exec($connect, $query);
        
         while($final = odbc_fetch_array($result)) {
        
                $data['Sizes'] = $final;
               var_dump($final); //array(1) { ["ACTIVE_SIZES"]=> string(8) "XS-S-M-L" }array(1) { ["ACTIVE_SIZES"]=> string(8) "XS-S-M-L" }...
            
        }  
        
            $csv_data[] = $data; 
            var_dump($csv_data); //["Pictures Names"]=> string(15) "SCJEG4_1041.jpg" ["Color-Description"]=> string(12) "1041-MUSTARD" ["Sizes"]=> array(1) { ["ACTIVE_SIZES"]=> string(15) "XS-S-M-L-XL-2XL" } } }
             
    }
    fclose($handle);
}

if (($handle = fopen($nomcsv, 'w')) !== FALSE) {
    foreach ($csv_data as $data) {
        fputcsv($handle, $data, $delimiter);
    }
    fclose($handle);
}

?>

最后,我的 csv 文件中有这个:

在此处输入图片说明

试试这个,唯一的问题是你需要定义你的 ActiveSizes 索引并将其推送到大小索引

  $delimiter = ";"; 
  $csv_data = array();
  if (($handle = fopen($nomcsv, 'r')) !== FALSE) {
      while (($data = fgetcsv($handle, 10000, $delimiter)) !== FALSE) {
          //Add two columns at the end
          $data['Pictures Names'] = (!empty($data[4]) ? ($data[7] ?: '') . "_" . $data[4] . '.jpg' : ''); 
          $data['Color-Description'] = (!empty($data[3]) ? (ltrim($data[4], '0') ?: '') . "-" . $data[3] : '');  
          
          //Query
          $query = "SELECT ACTIVE_SIZES FROM ADA_ACTIVE_SIZE2_VIEW WHERE ADA_STYLE = '".$data[4]."'";

          $result = odbc_exec($connect, $query);
          
          while($row = odbc_fetch_array($result)) {
          
              $data['Sizes'][] = $row['ACTIVE_SIZES'];
              
          }  
          
          $csv_data[] = $data; 
              
      }
      
      fclose($handle);
  }

  //var_dump($csv_data);

  if (($handle = fopen($nomcsv, 'w')) !== FALSE) {
      foreach ($csv_data as $data) {
          fputcsv($handle, $data, $delimiter);
      }

      fclose($handle);
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM