使用动态值导出CSV基于MySQL查询

时间:2013-10-08 09:23:01

标签: php mysql csv

我有以下代码片段,除了文件导出部分是硬编码外,效果很好。我已经接近了,但不知道如何实现以下::

  1. 省略PictureCount字段显示为的列 出口

  2. 我需要使用PictureCount值来生成基于每个记录的这个计数的新记录(例如:。$ jpg_name。“_。$ Picture_Count.jpg

    ,而不是硬编码_1.jpg。
  3. 这是我的工作代码:

    $values = mysql_query("SELECT PictureCount, ListingRid AS Home_ID FROM ".$table." WHERE (COUNTY='ACME' OR COUNTY="TEST")");
    $row = 0;
    while ($rowr = mysql_fetch_assoc($values)) 
    {
      if ($row == 0)
      $row++;
    
          $csv_output .= "company_id|";
      foreach($rowr as $name => $value)
      {
          if($name=='Home_ID') {$jpg_name=$value;}
          $csv_output .= $value."|";
      }
      {
          $csv_output .= "http://www.acmerealestate.com/feeds/fmfl/rets_images/".$jpg_name."_1.jpg ";
      }    
          $csv_output .= "\n";    
    }
    

1 个答案:

答案 0 :(得分:0)

在这种情况下,您需要更改SQL中的列。首先,您需要添加Home_ID,然后添加PicCount

列表中的所有图片都可以从1循环到PictureCount,只需将图像添加到列表中。

<?php
$values = mysql_query("SELECT ListingRid AS Home_ID, PictureCount FROM ".$table." WHERE (COUNTY='ACME' OR COUNTY="TEST")");
$row = 0;
while ($rowr = mysql_fetch_assoc($values))
{
    if ($row == 0)
        $row++;

    $csv_output .= "company_id|";
    foreach($rowr as $name => $value)
    {
        if($name=='Home_ID') {$jpg_name=$value;}
        $csv_output .= $value."|";
        if ($name == 'PictureCount') {
        for ($i = 1; $i <= $value; $i ++)
            $csv_output .="http://www.acmerealestate.com/feeds/fmfl/rets_images/".$jpg_name."_".$i.".jpg|";
        }
    }
    $csv_output .= "\n";
}