MySQLでオートインクリメントされる値の頭を0で埋めて桁数を揃えたいざんす。

+--------------+--------+
| id           | name   |
+--------------+--------+
| 000000000001 | ラモス |
| 000000000002 | 落合   |
+--------------+--------+

idを12桁にしてこうしたいざんす。

<?php

//新しくテーブルを作る
$sql = "CREATE TABLE table1 "; //表示の都合上分割
$sql .= "(id INT(12) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, ";
$sql .= "name VARCHAR(10), PRIMARY KEY (id))";
$res = mysql_query($sql);

?>

INTの()内に桁数を指定して、UNSIGNED ZEROFILLとしてやるとできたざんす。
桁数をオーバーした値はそのまま入るので、オーバーさせないためには、TINYINTなら3桁、INTなら10桁、BIGINT20桁、以上を指定しておけばいいざんす。
ちなみに、AUTO_INCREMENTするときは必ず、PRIMARY KEY(インデックス)を設定してやる必要があるざんす。
実際にデータを入力して、いろいろ試してみるざんす。

<?php

//1行目を挿入
$sql = "INSERT INTO table1 VALUES (NULL, 'ラモス')";
$sql = "INSERT INTO table1 VALUES (0, 'ラモス')";     //0でもいい
$sql = "INSERT INTO table1 (name) VALUES ('ラモス')"; //これでもいい
$res = mysql_query($sql);

//2行目を挿入
$sql = "INSERT INTO table1 VALUES (NULL, '落合')";
$res = mysql_query($sql);

$id = mysql_insert_id();       //最新(2行目)のIDを取得する
echo $id;                      //2 0で埋まってない!

$id = sprintf('%012d', $id);   //頭を0で埋めてやる
echo $id;                      //000000000002

//idの値を取得する
$sql = "SELECT id FROM table1 WHERE id = $id";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
echo $row['id'];               //000000000002 ちゃんと0で埋まってる

//直書きで取得してみる
$sql = "SELECT id FROM table1 WHERE id = 000000000001";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
echo $row['id'];               //000000000001 平気!

//0で埋めないでやってみる
$sql = "SELECT id FROM table1 WHERE id = 2";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
echo $row['id'];               //000000000002 これでも平気!

?>

勉強になったざんす。

JavaScriptでXHTMLフォーム中の特定のテキストボックス・オブジェクトを抽出したいざんす。

<form action="send.php" method="POST" id="form1">
名前 <input type="text" id="text1" name="namae" /><br />
住所 <input type="text" id="text2" name="jyusyo" /><br />
電話 <input type="text" id="text3" name="denwa" /><br />
<input type="submit" id="subm1" name="sousin" value="送信" />
</form>

こんなXHTMLのフォームの中から、住所のテキストボックス・オブジェクトを抽出するざんす。
オブジェクトが抽出できれば、いろんな操作ができるざんす。

function getTextBox2() {

var obj;
obj = document.getElementById('text2');               //ID値で直撃
obj = document.getElementsByName('jyusyo')[0];        //name値で直撃
obj = document.getElementsByName('jyusyo').item(0);
obj = document.getElementsByTagName('input')[1];      //全てのinputタグの2番目
obj = document.getElementsByTagName('input').item(1);
obj = document.getElementById('form1')[1];            //特定のformエレメント下の〜
obj = document.getElementById('form1').getElementsByTagName('input')[1];
obj = document.getElementsByTagName('form')[0][1];
obj = document.forms[0].elements[1];
obj = document.getElementById('form1').elements[1];

obj.value = '東京都新宿区'; //抽出したテキストボックスに文字を入れてみる

}

objと名前をつけた変数には、全部同じ2番目のテキストボックス・オブジェクトが代入されるざんす。
テキストボックスとかだと、最初から重複しないname値を設定しておくケースが多いので、getElementsByName()[0]で直撃すればいいざんす。

JavaScriptでテキストボックスの末尾にカーソル(キャレット)を移動したいざんす。

function setCursor() {

var obj = document.getElementsByName('text1')[0]; //テキストボックスを指定
obj.focus();     //テキストボックスにフォーカスを移動
obj.value += ''; //テキストボックス内の文字列末尾にカーソルを移動

}

すごっ!目から鱗の超簡単技ざんす。

UTF-8の環境でPHPでMySQLデータベースに文字化けせずにアクセスしたいざんす。

<?php

header('Content-Type: text/html; charset=UTF-8');
header('Content_Language: ja');

$host = 'localhost'; //データベースのホスト名
$user = 'minmin';    //データベースの接続ユーザー名
$pass = '123456';    //データベースの接続パスワード

$db = mysql_connect($host, $user, $pass) or die('Could not connect');
mysql_query('SET NAMES utf8', $db);
mysql_select_db($user) or die('Could not select database');

?>

データベースを開くとき、mysql_query('SET NAMES utf8', $db); を噛ましてやるとできたざんす。
深く考えることもなく、これでいいざんす。

UTF-8の環境でPHPのmb_send_mailを使って文字化けせずにメールを送信したいざんす。

<?php

header('Content-Type: text/html; charset=UTF-8');
header('Content_Language: ja');

$to = 'aaa@bbb.jp';         //送信先メールアドレス
$subj = 'こんにちくわ';     //件名
$mess = 'お元気ざんす?';   //本文
$from = 'From: ccc@ddd.jp'; //送信元メールアドレス

mb_language('uni');
mb_internal_encoding('UTF-8');
mb_send_mail($to, $subj, $mess, $from); //メール送信

?>

こんなんでなんとかなったざんす。
mb_language('ja'); だと、まだ一部の文字が化けてしまうざんす。シェー!
言われるままに mb_language('uni'); にしたら収まったので、これでいいざんす。