生配信チェッカーサイトを作りたいブログ

生配信チェッカーサイトを作りたい人がメモ書きをするブログ

テーブルを作成(mysql)

忘れてしまうので記録。
ここのjsonデータを出力できるようなテーブルを作成する構文をphpで出力する。
http://checker-site.hatenablog.com/entry/2015/12/14/235144

<?php
$json_data = array();
//idにauto_incrementを設定
echo "create table test(id int(11) auto_increment,name varchar(20),gender varchar(2),twitter_name varchar(20),twitter_id varchar(20),status  tinyint(1), checker_id int(11),";

$all = array(
		"total",
		"broadcast",
		"chat");

$total = array(
		"viewers",
		"isLive",
		"lastDate");

$service = array("ustream", 
				"twitch",
				"niconico",
				"livetube",
				"youtubelive",
				"twicas",
				"fc2",
				"afreecacom",
				"cavetube",
				"hitbox");

$chat_service = array("ustirc", 
				"juschat");				

$chat = array("id", 
			"channel_name");				

				
$item = array("isLive",
			"viewers",
			"title", 
			"description", 
			"created_at",
			"id",
			"channel_name",
			"user_name",
			"url",
			"archive_url",
			"snapshot",
			"lastDate");

foreach($total as $i){
	$json_data["total"][$i] = true;
		if($i == "viewers"){
			echo "total_" . $i . " int(11),";
		}elseif($i == "isLive"){
			echo "total_" . $i . " tinyint(1),";			
		}elseif($i=="lastDate"){
			echo "total_" . $i . " TIMESTAMP,";			
		}elseif($i=="twitter_name"){
			echo "total_" . $i . " varchar(20),";			
		}elseif($i=="twitter_id"){
			echo "total_" . $i . " int(11),";			
		}
}

foreach($service as $i){
	foreach($item as $j){
		$json_data["broadcast"][$i][$j] = true;
		if($j == "isLive"){
			echo $i . "_" . $j . " tinyint(1),";	
		}elseif($j == "viewers"){
			echo $i . "_" . $j . " int(11),";
		}elseif($j == "title"){
			echo $i . "_" . $j . " varchar(40),";
		}elseif($j == "description"){
			echo $i . "_" . $j . " varchar(100),";
		}elseif($j=="created_at"){
			echo $i . "_" . $j . " TIMESTAMP,";			
		}elseif($j=="id"){
			echo $i . "_" . $j . " int(11),";			
		}elseif($j=="channel_name"){
			echo $i . "_" . $j . " varchar(20),";	
		}elseif($j=="user_name"){
			echo $i . "_" . $j . " varchar(20),";	
		}elseif($j=="url"){
			echo $i . "_" . $j . " varchar(100),";		
		}elseif($j=="archive_url"){
			echo $i . "_" . $j . " varchar(100),";		
		}elseif($j=="snapshot"){
			echo $i . "_" . $j . " varchar(100),";	
		}elseif($j=="lastDate"){
			echo $i . "_" . $j . " TIMESTAMP,";				
		}
	}
}

foreach($chat_service as $i){
	foreach($chat as $j){
		$json_data["chat"][$i][$j] = true;
		if($j == "isLive"){
			echo $i . "_" . $j . " tinyint(1),";	
		}elseif($j == "viewers"){
			echo $i . "_" . $j . " int(11),";
		}elseif($j == "title"){
			echo $i . "_" . $j . " varchar(40),";
		}elseif($j=="created_at"){
			echo $i . "_" . $j . " TIMESTAMP,";			
		}elseif($j=="id"){
			echo $i . "_" . $j . " int(11),";			
		}elseif($j=="channel_name"){
			echo $i . "_" . $j . " varchar(20),";	
		}elseif($j=="user_name"){
			echo $i . "_" . $j . " varchar(20),";	
		}elseif($j=="url"){
			echo $i . "_" . $j . " varchar(100),";		
		}elseif($j=="archive_url"){
			echo $i . "_" . $j . " varchar(100),";		
		}elseif($j=="snapshot"){
			echo $i . "_" . $j . " varchar(100),";	
		}elseif($j=="lastDate"){
			echo $i . "_" . $j . " TIMESTAMP,";				
		}
	}
}

$json = json_encode($json_data);
echo "PRIMARY KEY (id));";//idにauto_incrementを設定
echo PHP_EOL . PHP_EOL;

出力結果↓
create table test(id int(11) auto_increment,name varchar(20),gender varchar(2),twitter_name varchar(20),twitter_id varchar(20),status tinyint(1), checker_id int(11),total_viewers int(11),total_isLive tinyint(1),total_lastDate date,ustream_isLive tinyint(1),ustream_viewers int(11),ustream_title varchar(40),ustream_description varchar(100),ustream_created_at date,ustream_id int(11),ustream_channel_name varchar(20),ustream_user_name varchar(20),ustream_url varchar(100),ustream_archive_url varchar(100),ustream_snapshot varchar(100),ustream_lastDate date,twitch_isLive tinyint(1),twitch_viewers int(11),twitch_title varchar(40),twitch_description varchar(100),twitch_created_at date,twitch_id int(11),twitch_channel_name varchar(20),twitch_user_name varchar(20),twitch_url varchar(100),twitch_archive_url varchar(100),twitch_snapshot varchar(100),twitch_lastDate date,niconico_isLive tinyint(1),niconico_viewers int(11),niconico_title varchar(40),niconico_description varchar(100),niconico_created_at date,niconico_id int(11),niconico_channel_name varchar(20),niconico_user_name varchar(20),niconico_url varchar(100),niconico_archive_url varchar(100),niconico_snapshot varchar(100),niconico_lastDate date,livetube_isLive tinyint(1),livetube_viewers int(11),livetube_title varchar(40),livetube_description varchar(100),livetube_created_at date,livetube_id int(11),livetube_channel_name varchar(20),livetube_user_name varchar(20),livetube_url varchar(100),livetube_archive_url varchar(100),livetube_snapshot varchar(100),livetube_lastDate date,youtubelive_isLive tinyint(1),youtubelive_viewers int(11),youtubelive_title varchar(40),youtubelive_description varchar(100),youtubelive_created_at date,youtubelive_id int(11),youtubelive_channel_name varchar(20),youtubelive_user_name varchar(20),youtubelive_url varchar(100),youtubelive_archive_url varchar(100),youtubelive_snapshot varchar(100),youtubelive_lastDate date,twicas_isLive tinyint(1),twicas_viewers int(11),twicas_title varchar(40),twicas_description varchar(100),twicas_created_at date,twicas_id int(11),twicas_channel_name varchar(20),twicas_user_name varchar(20),twicas_url varchar(100),twicas_archive_url varchar(100),twicas_snapshot varchar(100),twicas_lastDate date,fc2_isLive tinyint(1),fc2_viewers int(11),fc2_title varchar(40),fc2_description varchar(100),fc2_created_at date,fc2_id int(11),fc2_channel_name varchar(20),fc2_user_name varchar(20),fc2_url varchar(100),fc2_archive_url varchar(100),fc2_snapshot varchar(100),fc2_lastDate date,afreecacom_isLive tinyint(1),afreecacom_viewers int(11),afreecacom_title varchar(40),afreecacom_description varchar(100),afreecacom_created_at date,afreecacom_id int(11),afreecacom_channel_name varchar(20),afreecacom_user_name varchar(20),afreecacom_url varchar(100),afreecacom_archive_url varchar(100),afreecacom_snapshot varchar(100),afreecacom_lastDate date,cavetube_isLive tinyint(1),cavetube_viewers int(11),cavetube_title varchar(40),cavetube_description varchar(100),cavetube_created_at date,cavetube_id int(11),cavetube_channel_name varchar(20),cavetube_user_name varchar(20),cavetube_url varchar(100),cavetube_archive_url varchar(100),cavetube_snapshot varchar(100),cavetube_lastDate date,hitbox_isLive tinyint(1),hitbox_viewers int(11),hitbox_title varchar(40),hitbox_description varchar(100),hitbox_created_at date,hitbox_id int(11),hitbox_channel_name varchar(20),hitbox_user_name varchar(20),hitbox_url varchar(100),hitbox_archive_url varchar(100),hitbox_snapshot varchar(100),hitbox_lastDate date,ustirc_id int(11),ustirc_channel_name varchar(20),juschat_id int(11),juschat_channel_name varchar(20),PRIMARY KEY (id));