検索画面を製造します。
まず、検索画面と詳細画面で共通的に使用する定数を作成します。
■がついてる項目
・アクセスキーID
・シークレットアクセスキー
・アソシエイトID
上記の項目にAmazonから取得したキーを入れて下さい。
const.php
"All", "nodeId" => "0", "itemName" => "すべて" ); $categoryList[] = array( "ItemIdx" => "Apparel", "nodeId" => "361245011", "itemName" => "服&ファッション小物" ); $categoryList[] = array( "ItemIdx" => "Automotive", "nodeId" => "2017305051", "itemName" => "カー&バイク用品" ); $categoryList[] = array( "ItemIdx" => "Baby", "nodeId" => "344919011", "itemName" => "ベビー&マタニティー" ); $categoryList[] = array( "ItemIdx" => "Beauty", "nodeId" => "52391051", "itemName" => "コスメ" ); $categoryList[] = array( "ItemIdx" => "Books", "nodeId" => "465610", "itemName" => "本" ); $categoryList[] = array( "ItemIdx" => "Classical", "nodeId" => "701040", "itemName" => "Classical" ); $categoryList[] = array( "ItemIdx" => "DVD", "nodeId" => "562002", "itemName" => "DVD" ); $categoryList[] = array( "ItemIdx" => "Electronics", "nodeId" => "3210991", "itemName" => "家電・カメラ" ); $categoryList[] = array( "ItemIdx" => "ForeignBooks", "nodeId" => "52231011", "itemName" => "洋書" ); $categoryList[] = array( "ItemIdx" => "Grocery", "nodeId" => "57240051", "itemName" => "食品・飲料" ); $categoryList[] = array( "ItemIdx" => "HealthPersonalCare", "nodeId" => "161669011", "itemName" => "ヘルス&ビューティー" ); $categoryList[] = array( "ItemIdx" => "Hobbies", "nodeId" => "2189355051", "itemName" => "ホビー" ); $categoryList[] = array( "ItemIdx" => "Jewelry", "nodeId" => "85896051", "itemName" => "ジュエリー" ); $categoryList[] = array( "ItemIdx" => "Kitchen", "nodeId" => "3839151", "itemName" => "ホーム&キッチン" ); $categoryList[] = array( "ItemIdx" => "Music", "nodeId" => "562032", "itemName" => "ミュージック" ); $categoryList[] = array( "ItemIdx" => "OfficeProducts", "nodeId" => "86731051", "itemName" => "オフィス用品" ); $categoryList[] = array( "ItemIdx" => "PCHardware", "nodeId" => "2127210051", "itemName" => "パソコン・周辺機器" ); $categoryList[] = array( "ItemIdx" => "PetSupplies", "nodeId" => "2127213051", "itemName" => "ペット用品" ); $categoryList[] = array( "ItemIdx" => "Shoes", "nodeId" => "2016927051", "itemName" => "シューズ&バッグ" ); $categoryList[] = array( "ItemIdx" => "Software", "nodeId" => "637630", "itemName" => "PCソフト" ); $categoryList[] = array( "ItemIdx" => "SportingGoods", "nodeId" => "14315361", "itemName" => "スポーツ&アウトドア" ); $categoryList[] = array( "ItemIdx" => "Toys", "nodeId" => "13299551", "itemName" => "おもちゃ" ); $categoryList[] = array( "ItemIdx" => "VHS", "nodeId" => "561972", "itemName" => "VHS" ); $categoryList[] = array( "ItemIdx" => "Video", "nodeId" => "561972", "itemName" => "ビデオ" ); $categoryList[] = array( "ItemIdx" => "VideoGames", "nodeId" => "637872", "itemName" => "TVゲーム" ); $categoryList[] = array( "ItemIdx" => "Watches", "nodeId" => "331952011", "itemName" => "時計" ); ?>
ついでなので、HTML定義も共通化しておきます。
HTML表示時の文字コード等を定義しています。
com/headerMeta.php
<?php // HTML定義作成開始 echo ""; echo ""; echo ""; echo ""; echo "<title>アフィリエイト支援WEBサービス</title>"; echo ""; echo ""; echo ""; ?>
お待ちかねの検索画面です。
検索、及び検索結果の一覧表示を行います。
search.php
<!-- 検索結果画面 -->
<?php
// 定数読込
require_once( "./const.php" );
// 共通関数読込
require_once( COM_FUNCTION );
// SERVICES_AMAZON読込
require_once( API_AMAZON );
// HTMLヘッダ読込
include( COM_HEADER_META );
//------------------------------------------------------//
// 変数の初期化
//------------------------------------------------------//
$index = ""; // サーチインデックス
$keyword = ""; // サーチキーワード
$node_id = ""; // ノードID
$sort = SORT; // ソート順
$reqFlg = true; // リクエストフラグ
//------------------------------------------------------//
// パラメータチェック
//------------------------------------------------------//
// リクエストチェック
if( isset( $_REQUEST['action'] ) )
{
// カテゴリ設定
$index = htmlspecialchars( $_REQUEST['category'], ENT_QUOTES );
// ノードID設定
$node_id = "";
for ( $i = 0; $i
<!-- 本体 -->
<form name="form" method="post" action="search.php">
<table>
<tr>
<td>
<!-- セレクトボックス値 -->
<?php
for ( $i = 0; $i < count( $categoryList ); $i++ )
{
// 選択値判定
if ( $categoryList[$i]["ItemIdx"] == $index )
{
// 選択状態に変更
echo "".$categoryList[$i]["itemName"]."";
}
else
{
// 通常
echo "".$categoryList[$i]["itemName"]."";
}
}
?>
</td>
<td>
<input type="text" id="keyword" name="keyword" value="" size="50" />
<br />
</td>
</tr>
</table>
</form>
<br />
<br />
setLocale( LOCAL );
// 取得オプション設定
$options = array();
// 返却情報設定
$options['ResponseGroup'] = RESPONSE_GROUP;
// Keyword入力判定
if( $keyword != "" )
{
// 入力されている場合、使用する
$options['Keywords'] = $keyword;
}
// ALL判定
if( $index != "All" && $index != "Blended" )
{
// ※ALL、Blendedの場合はSort,BrowseNodeを指定するとエラーになるため
$options['Sort'] = $sort;
$options['BrowseNode'] = $node_id;
}
// AMAZONへリクエストを送信
$ret_item_by_keyword = $amazon -> ItemSearch( $index, $options );
// エラー判定
if ( PEAR::isError( $ret ) )
{
// エラーメッセージ表示
die( $ret -> getMessage() );
}
//------------------------------------------------------//
// HTML(商品情報)の表示
//------------------------------------------------------//
$item_list_html = "";
$item_list_html .= "<h2>商品一覧</h2><br />";
foreach ( $ret_item_by_keyword['Item'] as $item )
{
// 商品情報出力
$item_list_html .= create_item_detail_info( $item, true );
}
?>
<!-- 商品リスト -->
アマゾンから取得した商品データをHTMLに加工する
関数。一覧と詳細で共通使用します。
com/function.php
<?php
// ------------------------------------------------------//
// 商品表示情報作成
// ------------------------------------------------------//
function create_item_detail_info( $data, $search_flg )
{
//価格情報
$price = "";
if( isset( $data['ItemAttributes']['ListPrice']['FormattedPrice'] ) )
{
$price .= $data['ItemAttributes']['ListPrice']['FormattedPrice'];
}
//在庫状況
$avail = "";
if( isset( $data['Offers']['Offer']['OfferListing']['Availability'] ) )
{
$avail .= $data['Offers']['Offer']['OfferListing']['Availability'];
}
// 発売日
$release_date = "";
if( isset( $data['ItemAttributes']['ReleaseDate'] ) )
{
$release_date .= $data['ItemAttributes']['ReleaseDate'];
}
// 販売元情報
$release = "";
if( isset( $data['ItemAttributes']['Manufacturer'] ) )
{
$release .= $data['ItemAttributes']['Manufacturer'];
}
//ASIN
$asin = $data['ASIN'];
//Amazon LINK URL作成
if( $search_flg )
{
// 詳細情報表示
$afflink = "./detail.php?asin=" . $asin;
$target_blank = " target='_blank' ";
}
else
{
// Amazon詳細情報表示
$afflink = $data['DetailPageURL'];
$target_blank = " target='_blank' ";
}
//html作成
$html .= '<a>';
$html .= '<img src="' . $data['MediumImage'] ['URL'] . '" alt="" style="border:1px solid #eee" />';
$html .= '</a>';
$html .= '<h3>';
$html .= '<a>';
$html .= $data['ItemAttributes']['Title'];
$html .= '</a>';
$html .= '</h3>';
$html .= $now;
$html .= '価 格:' . $price . '<br />';
$html .= '在庫状況:' . $avail . '<br />';
$html .= '発 売 日:' . $release_date . '<br />';
$html .= '販 売 元:' . $release . '<br />';
$html .= '<br />';
$html .= '';
return $html;
}
?>