※本記事は成人向けのサイトに使った技術についてです。
実現したかったこと
DMM apiではソートできないものがあったので独自のデータベース(以下DB)を作りたかった。例:女優apiでできない誕生日での抽出など
実装環境
・mixhostレンタルサーバー ・Wordpress(テーマcocoon)使用 ・FileZilla Clientでphpファイル設置使用言語
・SQL ・php ・javascriptjavascriptでやること
概要:phpとDMM apiの橋渡しfunction main(){
宣言省略
for(let k=1 ; k<”総女優人数” ; k=k+100|0){
・
let url = "”DMM apiにアクセスするためのurl”";
・
fetch(url).then( function(response) {
return response.json();
}).then(async function(json) {
・
for (let i = 0 ; i < json.result.actress.length ; i++) {
・
act_id=json.result.actress[i].id;if(act_id==null){act_id=""};
name=json.result.actress[i].name;if(name==null){name=""};
ruby=json.result.actress[i].ruby;if(ruby==null){ruby=""};
bust=json.result.actress[i].bust; if(bust==null){bust=""};
cup=json.result.actress[i].cup;
waist=json.result.actress[i].waist; if(waist==null){waist=""};
height=json.result.actress[i].height; if(height==null){height=""};
birthday=json.result.actress[i].birthday; if(birthday==null){birthday=""};
blood=json.result.actress[i].blood_type; if(blood==null){blood=""};
、、
//phpファイルを指定してパラメータ状に値を渡す
let urlphp='https://masanblog.net/”phpファイル名”/?actid='+act_id+'&name='+name+'、、、、;
fetch(urlphp).then(function(response) {
}).then(function(jsonphp) {
});
}//for
})//json
};//k
};//main
javascriptを細かく解説
やっていることは単純で- fetch通信を利用してDMM apiを呼び出し変数Aに欲しい値を代入
- fetch通信を利用して自ドメインのphpファイルを読み出しパラメータで値を受け渡す
をしているだけです。
ちなみに他の方法をしってる方。ご教授ください!この方法はDB一行分を一回の通信としているため結構時間がかかるのです。
phpでやること
概要:受け取ったデータをSQL文を使用してDBに挿入
$act_id = $_REQUEST['actid'];
//以下省略
try {
//DBに接続
$pdo = new PDO(
'DB名'
'ユーザー名'
'パスワード'
// レコード列名をキーとして取得させる
[PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]
);
// SQL文をセット
$stmt = $pdo->prepare('INSERT INTO act (act_id,name,ruby,、、) VALUES(:act_id,:name,:ruby,:bust、、、);
// 値をセット
$stmt->bindValue(':act_id', $act_id)
以下省略
// SQL実行
$stmt->execute();
}catch(PDOException $e) {
//エラー処理
echo $e->getMessage();
}finally {
// DB接続を閉じる
$pdo = null;
}
phpを細かく解説
- 受け取ったデータを変数に代入($act_id = $_REQUEST['actid'];
- PDOを使用してDBと接続
- $pdo->prepareを利用してSQL文をセット
- bindValueでSQL文の変数に値をセット
- $stmt->execute();でSQLを実行しDBに一行追加
- DB接続を切断
phpファイルの設置場所
FileZillaを使用public_htmlの直下に設置
以上となります。
まとめ
javascriptはともかくphpやsql、通信と言われると警戒するかもしれませんが効率をあまり求めないのであれば一つ一つの部品はネット上に紹介されています。今回の記事もその一つとして参考になれば幸いです。サイトについて
fanza女優図鑑はfanzaサンプル動画のコンテンツの一つです。fanzaサンプル動画はポップアップで出演女優・サンプル画像が一発で探せたり、女優図鑑ではカップ検索・誕生日検索など様々な検索ができます。
どちらかというとスマホ用です。(改めまして、成人向けなので注意してください。)
次回は作ったDBの使い方です。