cakephpの中間テーブルの命名規則
複数形をアンダースコアでつなぐ
順番はabc順
「ユーザー」と「趣味」を多対多の関係で表現する場合
interests_usersとなる
modelの命名規則
複数形 + アンダースコア + 単数でつなぐ順番はabc順
modelは単数なのでモデル名の末尾は単数にする
中間テーブルの一つ目の名称は複数のままにする
interests_user.php
インスタンスの命名規則
アッパーキャメルで複数 + 単数InterestsUser
/* * First server */ $i++; /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; /* Select mysql if your server does not have mysqli */ $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['AllowNoPassword'] = false; /* * phpMyAdmin configuration storage settings. */ /* User used to manipulate with storage */ // $cfg['Servers'][$i]['controlhost'] = ''; // $cfg['Servers'][$i]['controluser'] = 'pma'; // $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* * ホストを設定 * データベースサーバーに続けてポート番号 * 例 サーバー名:mysql500.in.shared-server.net * ポート番号:5555 */ $cfg['Servers'][$i]['host'] = 'mysql500.in.shared-server.net:5555'; /* * ホスト、ユーザー、パスワード設定 */ $cfg['Servers'][$i]['controlhost'] = '上と同じ'; $cfg['Servers'][$i]['controluser'] = 'データベース名'; $cfg['Servers'][$i]['controlpass'] = '自分で設定したパスワード';
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);
}
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'ホスト名:ポート番号',
'login' => 'ログイン名(iCLUSTAではデータベース名)',
'password' => 'パスワード',
'database' => 'データベース',
'prefix' => '',
'encoding' => 'utf8',
);
}
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'ホスト名',
'port' => 'ポート番号',
'login' => 'ログイン名(iCLUSTAではデータベース名)',
'password' => 'パスワード',
'database' => 'データベース',
'prefix' => '',
'encoding' => 'utf8',
);
}
<h2>ユーザー独自の分類を登録</h2> <form action=“insert_action.php” method="post" > <label>名称</label> <input type="text" name="specification_name" /> <input type="submit" value="追加"/> </form>
$sql = sprintf('INSERT INTO pay_specifications SET name="%s", user_id=%d, created=NOW()',
mysql_real_escape_string($_POST["specification_name"]),
mysql_real_escape_string($_SESSION['user_id'])
);
mysql_query($sql, $link) or die(mysql_error());
$sql = sprintf('SELECT * FROM pay_specifications
ORDER BY ID ASC',
mysql_real_escape_string($_SESSION['user_id']
$sql = sprintf('SELECT * FROM pay_specifications
WHERE user_id=0 OR user_id=%d
ORDER BY ID ASC',
mysql_real_escape_string($_SESSION['user_id']
$sql = sprintf('INSERT INTO pay_specifications SET name="%s", user_id=%d, created=NOW(), uses=1',
mysql_real_escape_string($_POST["specification_name"]),
mysql_real_escape_string($_SESSION['user_id'])
);
mysql_query($sql, $link) or die(mysql_error());
SELECT * FROM pay_specifications
$sql = sprintf('WHERE user_id=0 OR user_id=%d AND uses=1
ORDER BY ID ASC',
mysql_real_escape_string($_SESSION['user_id']
UPDATE pay_specifications SET uses=2
$sql = sprintf('WHERE id=%d AND user_id=%d',
mysql_real_escape_string($_POST['not_use_id']),
mysql_real_escape_string($_SESSION['user_id'])
<?php
$sql=sprintf('SELECT * FROM pay_specifications
ORDER BY ID ASC',
mysql_real_escape_string($_SESSION['user_id'])
);
$result = mysql_query($sql) or die(mysql_error());
$record=NULL;
while ($row = mysql_fetch_assoc($result)) {
$record[] = $row;
}
?>
<select name="pay_specification_id">
<?php
for ($i=0,$count_record=count($record); $i<$count_record; $i++){
print('<option value="'.h($record[$i]['id']).'">'.h($record[$i]['name']).'</option>');
}
?>
</select>
<option value=1>食費</option>'); <option value=2>交際費</option>'); <option value=3>その他</option>');のようにデータベースに登録されている値が出力されます。
ALTER TABLE `pay` ADD `specification_id` INT NOT NULL AFTER `count`
CREATE TABLE `pay_specifications` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `user_id` int(11) NOT NULL, `uses` int(11) NOT NULL, `created` datetime NOT NULL, `modefied` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
<select name="type" id="type" >
<?php
$bunrui_array = array("交通費","食費","消耗品","交際費","サークル","研究室","その他");
for ($i=0; $i<count($bunrui_array); $i++){
print('<option value="'.$bunrui_array[$i].'">'.$bunrui_array[$i].'</option>');
}
?>
</select>
$sql = sprintf('SELECT a.name, u.id FROM user_accounts u
JOIN accounts a ON u.account_id=a.id
WHERE u.user_id=%d ORDER BY ID ASC',
(mysql_real_escape_string($user_id))
);
$result = mysql_query($sql) or die(mysql_error());
$sql = sprintf("SELECT SUM(income.amount) AS sum_income
FROM income
WHERE user_id=%d
AND date >= DATE_FORMAT(NOW(), '%Y-%m-01')
AND date < ADDDATE(DATE_FORMAT(NOW(), '%Y-%m-01'), interval 2 month)
GROUP BY income.user_id ",
mysql_real_escape_string($user_id)
);
$result = mysql_query($sql, $link) or die(mysql_error());
$sql = "SELECT SUM(income.amount) AS sum_income
FROM income
WHERE user_id=0
AND date >= DATE_FORMAT(NOW(), '%Y-%m-01')
AND date < ADDDATE(DATE_FORMAT(NOW(), '%Y-%m-01'), interval 2 month)
GROUP BY income.user_id ";
$result = mysql_query($sql, $link) or die(mysql_error());
$sql = sprintf("SELECT SUM(income.amount) AS sum_income
FROM income
WHERE user_id=%d
AND date >= DATE_FORMAT(NOW(), '%%Y-%%m-01')
AND date < ADDDATE(DATE_FORMAT(NOW(), '%%Y-%%m-01'), interval 2 month)
GROUP BY income.user_id ",
mysql_real_escape_string($user_id)
);
$result = mysql_query($sql, $link) or die(mysql_error());