[Tep-j-general] Yahoo! 商品検索登録用データ作成スクリプト 改

Back to archive index

hamada bungu****@leo*****
2006年 4月 13日 (木) 16:13:57 JST


こんにちわ。

On Sat, 08 Apr 2006 09:03:20 +0900
hamada <bungu****@leo*****> wrote:

> 直接所属カテゴリを表示するのか、上位カテゴリを表示するのか。重複登録カテ
> ゴリをどう処理するか等でいろんなケースが考えられましたので、ココは全部端
> 折ってます。必要な場合は適当に実装してください。

「どうすべきか解んないから丸っきり端折る」

ってのもすごく不親切な気がしたので、もっとも一般的と思われる

「所属カテゴリを表示」

として実装してみました。非常にテキトーに(^_^;)

カテゴリ部はメインと別動作になってますんで、違う方式で作動させたい場合は
好きなように弄ってください。

その他、細部を微妙に弄ってます(殆どバグ修正かもしれず:^^;)


はまだ


-------------------------------------------------------


<?php

require('includes/application_top.php');

//初期設定
$limit		= 1000;
$encode		= "SJIS";
$file		= "yahoolist.txt";
$separator	= "\t";
$tax		= 1.05;

//クエリを投げる
$sql = "select distinct p.products_id, pd.products_name, IF(s.status, s.specials_new_products_price, p.products_price) as price, pd.products_description, p.products_image, p.products_model from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_id = pd.products_id and pd.language_id = '4' and p.products_status = '1' order by p.products_id desc limit " . $limit;

$result = tep_db_query($sql);

//ファイルの書込み処理
$fp=fopen($file, "w");
flock($fp,2);

//データ見本部の書込み
$str = "id" . $separator . "title" . $separator . "url" . $separator . "price"  . $separator . "desc" . $separator . "image" . $separator. "path" . $separator . "no" . "\r\n"; 

fwrite($fp, $str);

//メインループ
while($data = tep_db_fetch_array($result)) {

	//1行分のデータを作成
	$str  = $data['products_id'];
	$str .= $separator;
	$str .= $data['products_name'];
	$str .= $separator;
	$str .= HTTP_SERVER . DIR_WS_CATALOG . FILENAME_PRODUCT_INFO . "/products_id/" . $data['products_id'];
	//「検索エンジン対策のurl」がfalseなら"?products_id="
	$str .= $separator;
	$str .= round($data['price'] * $tax);	//手抜き(^^;;
	$str .= $separator;
	$str .= mb_strimwidth(strip_tags(ereg_replace("\n|\r", "", $data['products_description'])), 0, 256);
	$str .= $separator;
	$str .= HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . $data['products_image'];
	$str .= $separator;
	
	//カテゴリを(適当に)引く
	$sql2 = "select cd.categories_name from " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES_DESCRIPTION . " cd  where p2c.products_id = '" . $data['products_id'] . "' and p2c.categories_id = cd.categories_id and cd.language_id ='4' limit 1";

	//カテゴリ取得のクエリを投げる
	$categorie_query = tep_db_query($sql2);

	//カテゴリが取得出来てれば出力
	if ($cat = tep_db_fetch_array($categorie_query)){

		$str .= $cat['categories_name'];

	}

	$str .= $separator;
	
	$str .= substr($data['products_model'], 0, 20);
	$str .= "\r\n";

	//文字コードの変換
	$str = mb_convert_encoding($str, $encode);

	//書込み
	fwrite($fp, $str);

}

//書込み終了処理
flock($fp,3);
fclose($fp);


?>






Tep-j-general メーリングリストの案内
Back to archive index