テーブルを登録してみる

SQLiteManager

例の青い人よりブログにコメントを頂きましたので
さっそく今日本屋に行って CakePHP1.2ガイドブックを買ってきました
誤字脱字が多いと評判でしかもCAKEPHP1.3alphaが出たこの時期に買うのはどうかと思ったのですが、
やっぱり参考書が無いと話にならないので買う事にしました。
一応公認ガイドブックと言う事であった方が良いっしょ。

早速DBとテーブルを作ってみました。

<?php
	//DBを製作する
	$db_con	=	sqlite_open('database.db',0666 ,$sqliteerror);
	if(!$db_con) die("接続に失敗しました: '$sqliteerror'");

	//実行するSQL文
$sql = <<< SQLITE
CREATE TABLE web_girl (
	id INTEGER NOT NULL PRIMARY KEY ,
	recommend VARCHAR,
	passwd VARCHAR,
	uname VARCHAR,
	birth VARCHAR,
	old int,
	blood VARCHAR,
	scoop VARCHAR,
	hobby VARCHAR,
	blog VARCHAR,
	counter int,
	point int,
	created DATETIME DEFAULT NULL,
	modified DATETIME DEFAULT NULL);
SQLITE;
$now = date("Y-m-d H:i:s",time());
if(sqlite_exec($db_con,$sql,$sqliteerror)) {
  echo "クエリーを実行しました";
}else {
  die("クエリーが失敗しました: '$sqliteerror'");  //SQLエラー
}

$sql = <<< SQLITE
INSERT INTO web_girl (
	recommend,
	passwd,
	uname,
	birth,
	old,
	blood,
	scoop,
	hobby,
	blog,
	counter,
	point,
	created
) VALUES (
	'testuser',
	'0123',
	'guest',
	'19900618',
	'20',
	'O',
	'双子座',
	'ケーキ作り',
	'http://d.hatena.ne.jp/cakeman/',
	'0',
	'0',
	'000');
SQLITE;

if(sqlite_exec($db_con,$sql,$sqliteerror)) {
  echo "クエリーを実行しました";
}else {
  die("クエリーが失敗しました: '$sqliteerror'");  //SQLエラー
}
sqlite_close($db_con);  //DB切断
?>

をcake/app/webroot/に入れてファイル名を指定実行
テーブル名は web_girl としました。
SQLiteManagerで確認 database.db を読み込む

app/models/web_girl.phpにモデルを作る

<?php
	Class Web_girl extends AppModel
{
	var $name = 'Web_girl';
}
?>

続いてコントローラーの制作
app/controllers/web_girl_controller.phpを作った。

 <?php
class Web_GirlController extends AppController {
var $name = 'Web_Girl';
function index() {
$this->set('Web_Girl', $this->Post->find('all'));
}
}
?>

さっそくエラーが出た。
コントローラーを作ってるのに無いよ!って怒られる。
っつかコントローラーって複数形だから Web_Girls だよね?
どっちにしても見当たらないと言われてしまう始末。
どうやら Web_girl の間のアンダーバーがクセモノみたいなので
テーブル名を webgirlに編集してみる
作り直したのに全然同じエラー文が出る

Error:  WebgirlController could not be found.
Error:  Create the class WebgirlController below in file: app\controllers\webgirl_controller.php

あんまりエラーが改善されないので、全く同じ構成でファイルを作って内容も合わせてみるけど
エラーが改善されず。。。
なんだこりゃ???

もちっと勉強してみます

例の青い人よりブログにコメントを頂きましたので
さっそく今日本屋に行って CakePHP1.2ガイドブックを買ってきました
誤字脱字が多いと評判でしかもCAKEPHP1.3alphaが出たこの時期に買うのはどうかと思ったのですが、
やっぱり参考書が無いと話にならないので買う事にしました。
一応公認ガイドブックと言う事であった方が良いっしょ。

早速DBとテーブルを作ってみました。

<?php
	//DBを製作する
	$db_con	=	sqlite_open('database.db',0666 ,$sqliteerror);
	if(!$db_con) die("接続に失敗しました: '$sqliteerror'");

	//実行するSQL文
$sql = <<< SQLITE
CREATE TABLE web_girl (
	id INTEGER NOT NULL PRIMARY KEY ,
	recommend VARCHAR,
	passwd VARCHAR,
	uname VARCHAR,
	birth VARCHAR,
	old int,
	blood VARCHAR,
	scoop VARCHAR,
	hobby VARCHAR,
	blog VARCHAR,
	counter int,
	point int,
	created DATETIME DEFAULT NULL,
	modified DATETIME DEFAULT NULL);
SQLITE;
$now = date("Y-m-d H:i:s",time());
if(sqlite_exec($db_con,$sql,$sqliteerror)) {
  echo "クエリーを実行しました";
}else {
  die("クエリーが失敗しました: '$sqliteerror'");  //SQLエラー
}

$sql = <<< SQLITE
INSERT INTO web_girl (
	recommend,
	passwd,
	uname,
	birth,
	old,
	blood,
	scoop,
	hobby,
	blog,
	counter,
	point,
	created
) VALUES (
	'testuser',
	'0123',
	'guest',
	'19900618',
	'20',
	'O',
	'双子座',
	'ケーキ作り',
	'http://d.hatena.ne.jp/cakeman/',
	'0',
	'0',
	'000');
SQLITE;

if(sqlite_exec($db_con,$sql,$sqliteerror)) {
  echo "クエリーを実行しました";
}else {
  die("クエリーが失敗しました: '$sqliteerror'");  //SQLエラー
}
sqlite_close($db_con);  //DB切断
?>

をcake/app/webroot/に入れてファイル名を指定実行
テーブル名は web_girl としました。
SQLiteManagerで確認 database.db を読み込む

app/models/web_girl.phpにモデルを作る

<?php
	Class Web_girl extends AppModel
{
	var $name = 'Web_girl';
}
?>

続いてコントローラーの制作
app/controllers/web_girl_controller.phpを作った。

 <?php
class Web_GirlController extends AppController {
var $name = 'Web_Girl';
function index() {
$this->set('Web_Girl', $this->Post->find('all'));
}
}
?>

もう一度最初から作り直したら上手くコントローラーまでは認識出来たけど
今度はSQL文っぽいエラーが出るようになった。

しっかしこうエラーが続くとCakeが楽しくなくなるな。。。

んでエラーの詳細は以下の通り

助けてくれーー誰かーーーー!!

まずはSQLite3で動かす

SQLite3での動作を確認しないと何も始まらない。
当方の環境はWinXP+XAMPPでテストの後
サクラサーバースタンダードのサーバーにUPして最終動作を確認します。

んで、SQLite3で動かすにはやっぱCPA-LABさん所のモジュールでやるしかないんかな?
と思いつつも検索してたら一応公式サイトにありやした!

RAIN or SHAINEさんのブログで場所とやり方が公開されてました!
ふぅ〜助かった!だってサクラサーバーってDB1個しか使えないし、その上、仕事で1個使ってしまってるからSQLiteでやるしかないやん
ってのがこっちの理由です。誰か開発環境提供してくれーって。。。

まぁいいや んじゃ早速公式からSQLite3のモジュールを落としてきます
んーどうやらdbo_sqlite3.7.phpが最新版らしい。。。あってるんかな??
念のためエキサイトさんに聞いてみたら

トランザクションメソッドが修理されて、したがって、トランザクションの中にトランザクションの可能性がありません。

まぁいいや 取りあえずこれにパッチを当てなきゃならんらしいけど、ぱっちはどれを使うのかな?

dbo_sqlite3.7.phpが6month agoって書いてたけど一番新しいパッチは16カ月前????
どーなってんの??

ググったら同じように悩んでる人が居たので助かった。

んでそのままdbo_sqlite3.phpにリネームして app\models\datasources\dbo\配下へ置いた。悩んでる人もどうやらWin環境らしい。
PHP.iniのPDOが有効かされていると動くらしいが、俺の環境ではどうだろう。。。。
app/config/database.phpに設定を書いて

class DATABASE_CONFIG {
 
	    var $default = array(
	        'driver' => 'sqlite3',
	        'persistent' => false,
	        'host' => 'localhost',
	        'login' => '',
	        'password' => '',
	        'database' => 'database.db'
	    );
	}

試してみる

なんと!Security.saltで怒られた!
core.phpの153行目を取りあえずcakephpに設定して保存
再度実行してみる。。。

これってうまく動いてるって事よね?ね?

テストにテーブル作ってみる。。。

CakePHPでいきなりサイトをひとつ知らない誰かに聞きながら作ってみる企画 その1

PHPすらド素人なワタクスが昨日始めたばかりのCakePHP 1.2.5を使ってサイトを作ってみると言う無謀な企画です
一応 チュートリアルは3回程作ってみました 昨日1日の間だけですが。。。
ちなみにPHPはクラスすら何となくでしか理解していません Function(独自関数)は作れる程度です。

で、つまずいたら色々なサイトで誰かに迷惑を掛けてみようと言う方法でチャレンジしてみたいと思います。


まずは定義 いきなり躓く予定なのですが SQLite3で動かします。
作りたいサイトの定義
いきなり敷居が高いかもしれませんが定義してみます。
ちなみに素のPHPだったら恐らく作れると思う程度のものを考えてみました
IDEAxIDEAの百式さんのように途中で挫折してしまうかも知れませんが青い人が見てたらもしかしたら返事してくれるかも知れないと言う事で勇気が湧きました

タイトル:
美人投票サイト

概要:
今流行の【美人時計のユーザー投稿版】
で投稿された美人に対して訪れたユーザーが1−5までの評価を投票していく
ユーザーが投票したら次の美人の画像が現れる。。。次々投票していく
新しい美人が投稿されたらツイッターで叫ぶ!
完成まで行けたらブログパーツも提供してみたい。

仕様:【基本】
ログインシステムは無し
画像登録 誰でも投稿可能 登録時にパスワードを設定出来る(削除時に使用)

必要パーツ:【表示画面】
プロフィール:(下記DBフィールド参照)
投稿画像
ブログへのリンク(_BLANK)
投票1〜5のボタン
新規投稿ボタン

必要パーツ:【登録時】
プロフィール:(下記DBフィールド参照)
写真
投稿ボタン
【DBのフィールドSQLite(途中何度か変更があるはず)】
推薦者:ニックネーム可
パスワード:4文字以上
名前:ニックネーム可
誕生日:
年齢:
血液型:
星座:
趣味:
ブログURL:
アクセスカウント用:
ポイント:
制作日:
編集日:

その他:
サイト名の決定
デザインの決定
ワイヤフーレム必要かも

皆様の応援 プライスレス

てな仕様にしてみたいと思います。