PHP输出查询


PHP Output Query

我刚到论坛,但希望有人能给我一个手我挣扎。

我的代码如下,我从禅车数据库导出到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();

但是不让接缝有任何影响,

提前感谢大家

罗素

我的代码现在看起来像

//Stock File的起始输出

$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(输出)美元;

把答案形式,这样你可以让它更快地工作^^你想要这样的:

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();
}