検索画面を製造します。
まず、検索画面と詳細画面で共通的に使用する定数を作成します。
■がついてる項目
・アクセスキー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; } ?>