PHP输出查询

时间:2013-03-08 16:17:52

标签: php

我是论坛的新手,但希望有人可以帮我一臂之力..

我的代码如下,我将从zen购物车数据库导出到csv文件

$products_cost =
    "select p.products_id, pd.products_name, p.products_quantity, ".
      "p.products_cost, (p.products_quantity*p.products_cost) AS products_total_cost, ".
      "p.products_type ".
    "from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd ".
    "where p.products_id = pd.products_id and pd.language_id='" . $_SESSION['languages_id'] . "' ".
    "order by (p.products_cost) DESC, p.products_cost desc, pd.products_name";

  $products_stock = $db->Execute($products_cost);

//Start Of Output for Stock File

$output = array();      
$output["tx_type"]='ST';        
$output["Stock_Code"]= $products_stock->fields['products_id'];
$output["Qty"]= $products_stock->fields['products_quantity'];
$output["Description"]= $products_stock->fields['products_name'];
$output["CostPriceEx"]= $products_stock->fields['products_cost'];
$output["TotalCostEx"]= $products_stock->fields['products_cost'] * $products_stock->fields['products_quantity']; 

zen_sages_fwrite($output);

$stimer = microtime_float();

运行代码时,我得到如下所示的输出,但不是显示数据库中的每个产品,而是显示相同的产品?

ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900
ST,1149,10,350gsm A6 Glossy Postcards,290.0000,2900

我尝试添加$products_stock->MoveNext();

但是剂量接缝有任何影响,

提前感谢你们

罗素

我的代码现在看起来像

//开始输出库存文件

$output = array();  while (!$products_stock->EOF) {


$output["tx_type"]='ST';


$output["Stock_Code"]= $products_stock->fields['products_id'];


$output["Qty"]= $products_stock->fields['products_quantity'];


$output["Description"]= $products_stock->fields['products_name'];


$output["CostPriceEx"]= $products_stock->fields['products_cost'];


$output["TotalCostEx"]= $products_stock->fields['products_cost'] * $products_stock->fields['products_quantity']; 

$ products_stock-> MoveNext的;

}

zen_sages_fwrite($输出);

$ stimer = microtime_float();

1 个答案:

答案 0 :(得分:0)

放入答案表格,以便让它更快地运作^^ 你想要这样的东西:

while(!$products_sock->EOF) {
    $output = array();      
    $output["tx_type"]='ST';        
    $output["Stock_Code"]= $products_stock->fields['products_id'];
    $output["Qty"]= $products_stock->fields['products_quantity'];
    $output["Description"]= $products_stock->fields['products_name'];
    $output["CostPriceEx"]= $products_stock->fields['products_cost'];
    $output["TotalCostEx"]= $products_stock->fields['products_cost'] * $products_stock->fields['products_quantity']; 

    zen_sages_fwrite($output);
    $products_stock->MoveNext();
}

使用上面添加的代码,每次循环都会覆盖$output,这会在覆盖它之前将其写入每个循环。

或尝试:

for($i=0;$i<$products_stock->rowCount();$i++) {
    $output = array();      
    $output["tx_type"]='ST';        
    $output["Stock_Code"]= $products_stock->fields['products_id'];
    $output["Qty"]= $products_stock->fields['products_quantity'];
    $output["Description"]= $products_stock->fields['products_name'];
    $output["CostPriceEx"]= $products_stock->fields['products_cost'];
    $output["TotalCostEx"]= $products_stock->fields['products_cost'] * $products_stock->fields['products_quantity']; 

    zen_sages_fwrite($output);
    $products_stock->MoveNext();
}