20second timeout

2008年2 月21日

CakePHPでデータベースサイトを作ろうとして挫折する日記1

Posted by: Shu-K In: ぷろぐらむ

なんかどこかで見たようなタイトルだけど、流してくださいw
PHPとかMySQLって知ってるけど、具体的にどう使うかを知らないド素人の当ブログ主が挑戦してみます。

hoopsstats_web.jpg

目指すはHoops Statsに日本版。
(bjリーグのバージョンを作ろうと思います)
さすがにここまで複雑なのは作れそうにないので、最初は一人の選手で05-06シーズンと06-07シーズンの得点・リバウンド・アシストの合計を表示できるようにする。

上手くいくだろうか・・・本を買ったほうがよいのだろうか・・・自問自答しながらググリながら頑張ります。

インストール環境とバージョン

  • Value-Domain
  • Xrea+(プラス)
  • CakePHP1.1.19.6305(安定版)

WordPressがインストールできるんだから、これぐらいは出来ないとね。と、甘く見ていたら、実はちょいとつまずいた。xreaでCakePHPを使う(massat.jpさん)を見ながらサブドメインで運用するためのインストール手順を踏んでいたんだけど・・・

/virtual/○○○/public_html/ドメイン/index.php
変更箇所になる○○○の部分を普通に取得ドメイン名をあててました。これじゃインストールできません。うちは取得ドメインとアカウント名が違ってたのを忘れてました。ここにはアカウント名を入れなきゃダメだったんですね。90%ぐらいの人が間違わないミスだと思います(笑)が、一応書いておきます。

データベースにデータを入れ込んでみる

ローカルではなくサーバーにインストールしているので、Xreaが用意してくれてるphpMyAdminとやらを使ってみる。どうせここの次はXreaに移転するんだし、WordPressのデータ移行作業が待っている!覚えて損は無いぞ!と意気込んでみるもどうやってデータを入れるのかわからず見事に粉砕
(それぐらい知ってろよって話ですよね。すいません)

ま、今使ってるサイトのデータベースじゃないし(Xreaは最大5個まで設置できる)、いろいろ触ってみることが大事だろうと開き直って触ってたら、左上にクエリウィンドウというものを発見。ここから色々と操作して、データをぶっこんでいくことに決定!

入力方法がだいたい理解できたところで入れたいデータを考える。まずはCakePHP の findAll で効率良く recursive(hetimaの日記さん)を参考に関連付けの練習。スタッツのデータを入れるとなるとちょいとめんどくさいので、チーム名を関連付けることから始めてる。

DROP TABLE IF EXISTS players;
CREATE TABLE players (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
position VARCHAR(50),
height VARCHAR(50),
weight VARCHAR(50),
team_id INT UNSIGNED,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
INSERT INTO players (name,position,height,weight) values ('Kazuya Hatano','F','192','90','1');

players_data1.jpg
(クリックで拡大表示+)

これで選手のデータを入れることに成功!team_idの部分にはチーム名を関連付けさせたいので、これを入れておくと良いっぽい。見よう見まねで入れてみた。INT UNSIGNEDの正確な意味を実は把握してなかったり・・・とりあえず(今は)表示されればOKなのさ。日本語化はあとあと。次にチームデータのぶっこみ。

DROP TABLE IF EXISTS teams;
CREATE TABLE teams (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
INSERT INTO teams (name) values ('evessa');

teams_data1.jpg
波多野選手は大阪エヴェッサ所属の選手なのでteamsのテーブルのnameにはevessaと記入。これで下準備は整ったはず。まだまだ不安。

$scaffoldで行ってみよう

Viewは個別にイジったり用意できるらしいけど、まだ仕組みがよくわからんのと、今のところデザインは気にしない、気にしないw

$scaffoldを試してみる(IDEA*IDEAさん)を参考に$scaffoldで表示できるか試してみた。

players.jpg
(クリックで拡大表示+)
お~、しっかり表示できてる!!!ちょっと感動。しかし、感動している場合ではないですね。

選手とチームを関連付けさせたいので、$belongsToを使ってみようと思います。
「プレイヤーはチームに所属している」
という風にしたいので、これでOKなのかなと・・・。

Playerモデルに以下を追加します。

< ?php
class Player extends AppModel {
var $name = 'Player';
var $belongsTo = array(
'Team'=> array(
‘className’=>’Team’,
‘foreignKey’=>’team_id’,
‘conditions’ => ”,
‘fields’ => ‘id,name’)
);
?>

evessa_hyoji.jpg
(クリックで拡大表示+)

でけたーーー!!

とりあえず今回はここまでで終了。疲れた~。
合ってるのかどうかすら全くわからないけれど、やってみることが大事という理念の元、進めていこうと思います。

2 Responses to "CakePHPでデータベースサイトを作ろうとして挫折する日記1"

1 | pg-k

2008年2 月22日 at 12:18 PM

Avatar

難しいことやってますな^^;
データベースは、Access以外触ったことがないので、言語のことはチンプンカンプンです^^;

完成が待ち遠しいですわw

2 | Shu-K

2008年2 月25日 at 10:21 AM

Avatar

久しぶりに脳みそが働いておりますw
完成はいつになるやら・・・
期待せずにしばしお待ちを。

コメントフォーム

Flickr PhotoStream

  • 15471491_1
  • 15487407_1
  • 15490146_1
  • 14288983_1

About

そっとお休みを取るブログ。20秒だけのお休み。あぁ、まったりペース。