昨夜は、何を思い立ってか、PHPでコードを書き始めました。
ほとんど保守でしか触らない私ですが、定期的に続けないとこりゃだめだなと痛感したのは言うまでもありません。
今回作ったのは、いわゆるアンケートプログラムで
次期iPhone5はどのキャリアで買うか?
と言う世間一般ありがちな話題です。
プログラムの中身は、PHPとMySQLと言う至ってシンプルなモノで
初期化エンジンを読み込み、SQLを書いてフォームで繰り出すと言うものです。
エラー処理は多少手抜きをして、SQL側で行う暴挙に出ていますがこの辺は今後制御をしっかり作れば別ですが、利用できる仕組みは利用した方が良いと思うのは人間の常でしょうか。
さて、だめっぷりが露見しそうですが、簡単にソースコードを出してみます
<div class=”bg_profile” id=”main2″ >
<h2>2013年9月に発売予定の新型iPhone5。あなたならどの会社を選ぶ?</h2>
<ul>
<form id=”form1″ name=”form1″ method=”post” action=””>
<li>
<label for=”radio”>
<input type=”radio” name=”radio” id=”radio” value=”1″ />
NTTドコモ </label>
</li>
<li>
<label for=”radio”>
<input type=”radio” name=”radio” id=”radio” value=”2″ />
ソフトバンク </label>
</li>
<li>
<label for=”radio”>
<input type=”radio” name=”radio” id=”radio” value=”3″ />
au </label>
</li>
<li>
<label for=”radio”>
<input name=”radio” type=”radio” id=”radio4″ value=”4″ checked=”checked” />
その他</label>
</li>
<li>
<input type=”submit” name=”button” id=”button” value=”投票!” />
</li>
<p>
<input type=”hidden” name=”mode” value=”entry” />
</p>
<p>
<?php require “../system.php”;
$post = $_POST[“mode”];
$get = $_GET[“mode”];
$radio = $_POST[“radio”];
$theme = “iphone5s”;
if ($post == 'entry')
{
$sql = “insert into enq values(NULL,'$theme','$radio','$_SERVER[REMOTE_HOST]','$nowdate[0]')”;
$result = mysql_query($sql,$db);
if ($result)
{
echo “<h3>投票を受け付けました!</h3>¥n”;
}
else
{
echo “<h3>【エラー】同一IPから1票のみ受け付けます</h3>¥n”;
}
echo <<<__HTML__
<form id=”form2″ name=”form2″ method=”post” action=””>
<input type=”submit” name=”button2″ id=”button2″ value=”結果を見る” />
<input type=”hidden” name=”mode” value=”result” />
</form>
__HTML__;
}
if ($post == 'result')
{
$name[“1”] = “docomo”;
$name[“2”] = “SoftBank”;
$name[“3”] = “au”;
$name[“4”] = “その他”;
$sql = “select * from enq where theme = '$theme' “;
$result = mysql_query($sql,$db);
$count = mysql_num_rows($result);
echo “<h2>合計 : {$count} 票</h2>”;
$sql2 = “select radio,count(radio) as total from enq group by radio “;
$result2 = mysql_query($sql2,$db);
echo “<dl class=¥”enq¥”>¥n”;
while ($temp = mysql_fetch_assoc($result2))
{
$list = $temp[“radio”];
$total = $temp[“total”];
echo “<dt>{$name[$list]}</dt>¥n”;
echo “<dd>{$total} 票</dd>¥n”;
}
echo “</dl>¥n”;
}
?>
</p>
</form>
</li>
</ul>
<div class=”social”>
<label title=”ツイートする”> <a href=”https://twitter.com/intent/tweet?text=新型iPhone5。あなたならどの会社を選ぶ?&url=http%3A%2F%2Fwww.ai2station.com/enq/iphone5s.php”><img src=”../image/twitter.png” width=”16″ height=”16″ />Twitter</a> </label>
<label title=”facebookでシェアする”>
<a href=”http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.ai2station.com/enq/iphone5s.php”><img src=”../image/facebook.png” width=”16″ height=”16″ />facebook</a> </label>
</div>
</div>
実際のページはこちら↓
http://www.ai2station.com/enq/iphone5s.php
簡単にプログラムが組めると言う触れ込みは無いんですが
割とPHPなら、短時間で構築できる理由は
「思った以上に型指定などの定義処理が少ない」
「他のサーバ(SQL)などの連携がとりやすい」
と言うメリットはあります。
私が普段から使っている本はPHPポケットリファレンスとSQL辞典の2冊。
バージョンが徐々に古くなっていくのは否めませんが、基本的な事、使い勝手を考えるとこういったリファレンスマニュアルは必ず手元にあると便利です。
確かに、ウェブサイト上で使い勝手やサンプルコードもあるから「わざわざ本を買うまでも無い」と考えがちです。
ましてや自炊してスキャンするなどは本がもったい無いからでなく、本の手触りで「どのページに何があるか?」をすぐに読み当てるので、紙の本は直感的インタフェイスの最たるモノで、パラパラ手でめくる感覚が私にはたまりません。
昨今、様々な言語で開発を続けてますがプログラムのコツやクセは著者のクセに似てきます。
プログラムのコツは「まず真似よ」そして、「サンプルコードを打ち込んで実行結果を試せ」というところを自ら実践しています。
そうして行くうちに、あれこれ欲が出てきてもっと良いモノができていくのではないか?と思うのです。
人に何か言えるほど、たいそうなモノは作ってませんが、プログラミングに慣れ親しむのは良いことで、パソコンとインターネット環境と安いレンタルサーバの契約があれば、いつでもどこでも誰でもできます。
ただ、言いたいことは「本は絶対いる」って事です。
続けるのが苦手な私ですが、作成途中の分も含めとっとと完成させなければと自戒の意味を込めて・・・。