2011年2月7日月曜日

2/7覚書

1時間目
九九+FizzBuzzテスト再び。
student3に送ってしまう凡ミス;

2時間目
デバッグ方法その2
・sql文の直下でprint sql;を実行。ブラウザで出た情報をプロンプトで貼り付けて実行。
 実行できなかったらどこかにエラーがあるので根気で探す。
・//$result = mysql_query($sql);の動作check
if (result){
print "SQL実行OK
";
}else{
print "SQLエラー
" ;
}

3時間目
hiddenで戻すかセッションで戻すか1時間悩む。
くわまんにヘルプすると、入力した値とresultの値とifで分岐させるから
どっちでもいいそうな。
ついでに変数に格納したほうがあとあと楽、と言うことがわかり、
field_displayとassocってのを使ってみる。
・・・・・・が、なんか余計こんがらがった;
登録済みの値は
$field_display = $_REQUEST["field_display"];
になる。つまりいまのおいらの考え方だと、
最初っからnameを"field_display"に指定してないといけないのだ。それは時間的に無理。
無理だけど今後のためにいちお続き。
update_comfirmの戻るボタンの前で
<input type="hidden" name="assoc[]" value="<?php echo $sei ?>">
って入れてって、updateで
$assoc = $_REQUEST["assoc"];
って指定して

if(($_REQUEST["assoc"])=="NULL"){
※sqlとか読み込み省略
echo $_REQUEST["assoc"];
}else(($_REQUEST["field_display"])=="NULL"){
echo $_REQUEST["field_display"];
※sqlとか読み込み省略
}
やるんだろうな、とは思う。けど。
今はやめときます。

んで、一覧から編集に飛ぶと中身がなーい!! アワワ ヽ(´Д`;≡;´Д`)丿 アワワ
原因は、value="戻る"におもっきしスペースが入ってたですよ_| ̄|○
単純ゆえに悩みました。
きっと先人の皆様もつまづいたんだろうなあ、と思いたい。

☆気づいたポイント(いまさら)
・都道府県の配列名はpref以外に。かぶるんで。
・for選択
<?php for($i =0; $i <=47; $i++){ ?>
<option value="<?php echo $i>"><?php echo $変数[$i]></option>

2011年2月4日金曜日

2/3・2/4覚書

2/3は前日の疲れが残っててすっかり忘れてました;

1時間目
2/4 新しいテスト。

九九の計算+FizzBuzzって。
いつもの面子以外クリアできず。ええおいらもできんかった;
あとちょっとだけだったんで、詰まったところ含めて復習。
ifの閉じタグ}の位置が甘く、九九の結果をFizzBuzzの判定後に入れる考えがなかった;

<html>
<head>
<title>九九+FizzBuzz</title>
</head>
<body>

<table border=1 cellpadding=5 align="center">
<caption>九九+FizzBuzz 3の倍数はFizz。5の倍数はBuzz。公倍数はFizzBuzz。</caption>
<tr>
<?php $k ="Fizz"?>
<?php $l ="Buzz"?>
<?php for ($i = 1; $i <=9 ; $i++) {?>
 <?php for ($j = 1; $j <=9 ; $j++) {?>
 <td align="center">
 <?php if ((($i*$j)%3) ==0) {?>
  <?php echo $k?>
 <?php }?>
 <?php if ((($i*$j)%5) ==0) {?>
  <?php echo $l?>
 <?php }?>
 <?php if ((($i*$j)%3) !=0 && (($i*$j)%5) !=0) {?>
 <?php echo $i*$j?>
 <?php }?>
</td>
<?php }?>
</tr>
<?php }?>

</table>

</body>

</html>

2時間目
デバッグ方法
ifやループ処理のネストは2つまでが共通認識。
それ以上になる場合は関数化してまとめよう。

エラーチェックおわた;
文字checkはeregが今回はあっているようだ。
//カタカナseiチェック
if (ereg('/[ァ-ヶー]+/u', $sei_kana)) {
 $error_msg = "全角カタカナで入力してください";
 $sei_kana_error_yn = 'y';
 $error_yn = "y";
}

検索・・・
せっきー&はっしー&いいんちょありがとー!!!

1.検索欄の属性をPOST
<input type="text" name="name" size="30">
なら
$name = $_POST["name"];
検索SQL文の前に置くよ。
実際の検索文。
//検索文
if($name !=""){
$sql.= " AND concat(sei,mei) like '%".$name."%'";
}

2011年2月1日火曜日

2/1覚書

・1時間目は掃除と九九計算。
・2時間目以降
 14:00頃にスケジュール確認
 作成が終わった場合は下記
 テスト仕様書の作成
 テスト実施
・午前中でupdateとupdate_comfirmが片付いた・・・ふへー;

と思ったら・・・・・・・。
戻る処理がうまくいかん><
もー無理_| ̄|○
その代わり委員長に教わりつつupdate_completeができた;
しかし、sqlのupdate文思いっきり間違えてました。
$sql = "UPDATE address_book SET sei = '".$sei."',mei = '".$mei."',
~以下,でつなぎ、WHERE id=".$id;で終わる。
WHEREの直前にカンマは不要。

デバッグ色々
print_r ($_POST);
print_r ($_SESSION);
includeに入れておく
#デバッグモード
$debug = false;//デバッグOFF
$debug = true;//デバッグON

使いたい箇所で↓入れる
if($debug)echo ($sql);
if($debug)print($result);
明日はみんなで陸っぱりとごはん♪
楽しみですにゃ~♪

2011年1月31日月曜日

1/31覚書

1時間目は掃除と九九計算テスト。
週明けでもタイトルタグ以外は暗記できててかーなーり、ほっとした;

2時間目以降ラストまで
・住所録の続き~
今日はようやく都道府県配列とsessionができた。
変数の指定がごっちゃになってた。

あとフリガナのsei_kana mei_kanaを逆に書いてた_| ̄|○ソリャーデネエヨ

他修正点
・includeにPOSTの値があり、誤動作回避と切り分け明確化のため各ファイルに移動。
 設定に関するものだけ残す。
・sessionの開始とincludeとPOSTの配置の理解が甘くエラーや非表示のため推敲。
 session→include→POSTの順でうまくいっている。
・ラジオボタンは'checked'だった;
・新規登録完了の段階で再度都道府県&性別でつまづく。POSTを直接$_SESSION["gender"]
 として渡すことで解決。

明日は多少の速度向上が見込めそう。エラーチェックのタイプミスがなければwww

2011年1月28日金曜日

1/28覚書

昨日はハロワ行って午後から参加。
住所録に夢中になってすっかりブログ忘れた;

1時間目は掃除だったけど、体力温存でお休みしてその代わり拭き掃除。
ゆきんこと一緒にふきふき~。
で、九九計算。テーブルのtrとtdの位置がつかめず苦労しますた・・・・・・。
正月にちょっとやっただけで忘れてる部分が大きいなあ;

2時間目
住所録
配列の中の配列を出す、ってのをまじめに覚えました。
$rowの宣言はwhileでしてるよ。
<?php echo $gender[$row["gender"]] ?>
3時間目~5時間目
ひたすら新規入力と確認画面。
配列の中の配列、DB登録前の記述
insert.php
<input name="sei" size="30" type="text" value="<?php echo $sei ?>" />

<?php echo $gender[$rowg["gender"]] ?>

$rowg = $_POST["gender"];
includeに$rowgの宣言をまとめたよ。
都道府県やPOSTのも。

変数の戻るセッションでつっかかってる;
きょうはここまで~

2011年1月24日月曜日

1/24覚書

1時間目
・お掃除の後はfizzbuzz
2時間目
Developers Summit 2011に課外授業(会社見学代替)で行くかも。席が空いてれば;
・mb.strlenで入力チェックの関数、とりあえず入力まで。
mb(マルチバイトいわゆる日本語).strlen(文字列の長さ)を調べてくれる関数。

こんな感じ
//エラーメッセージ
$error_msg ="";

//ボタンの押下確認
if ($_POST["send"]) {

 //リクエストからフォームに入力された値を取得
 $text =$_POST["text"];

 //未入力チェック
 if (($text == "" )|| ($text == NULL)) {
  $error_msg ="入力されていません";
 }

 //文字数チェック(20文字まで)
 //if (mb_strlen($text,"utf8") >= 5) {
 if (mb_strlen($text,"utf8") < 4 || mb_strlen($text,"utf8") > 16) {
  $error_msg = "4文字以上16文字以下で入力してください";
 }

 //英数字チェック
 if (mb_ereg('[^0-9a-zA-Z]', $text)) {
  $error_msg="英数字で入力してください";
 }
}

3-4時間目
・掲示板に組み込む。ifの入れ子でこんがらがった。まだ早かった;
エラーフラグはみんなならpasswordで入れてるはず。
$delpass = $_POST["delpass"];
$error_msg ="";
//未入力チェック
if (($delpass == "" )|| ($delpass == NULL)) {
 $error_msg ="入力されていません";
 $delpass_error_yn = 'y';
 $error_yn = "y";
}
//文字数チェック(16文字まで)
if (mb_strlen($delpass,"utf8") < 4 || mb_strlen($delpass,"utf8") > 16) {
 $error_msg = "英数字および4文字以上16文字以下で入力してください";
 $delpass_error_yn = 'y';
 $error_yn = "y";
}

//英数字チェック
if (mb_ereg('[^0-9a-zA-Z]',$delpass)){
 $error_msg="英数字で入力してください";
 $delpass_error_yn = 'y';
 $error_yn = "y";
}

ちょい息抜き
http://8tracks.com/CCCDとDRM以外の音源ならUP可能で共有できるそうな。
作業用BGMより軽そうだなあ。

5時間目
削除にもパスワードのチェックと一致認証
ていうかね、
// エラーがなかったらデータベースにデータを挿入
if ($error_yn == 'n') {
これがまんま抜けてた_| ̄|○そら消えちゃうよ……。
あとね、インデントを同じ処理の部分は同じ揃えにする大切さがわかりました。
なんか返信の写真うpできないなー、で悩んで、インデントそろえたら、
$row = mysql_fetch_row($result);
が消えてた。おそらくコピペの弊害かなと。

明日は入力チェックをクラスで外部にまとめる予定。
DBエラーチェックもやるっぽい。
あと終了文、どのタイミングなのかなあと。

2011年1月21日金曜日

1/22覚書自宅編

//delpass取得処理
$sql = "select delpass from comment order by id desc limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$row["delpass"];

  <!-- パスワード入力&整合性結果  -->
  <?php if($delpass_error_yn == 'y') {?>
   パスワードが入力されていないか、設定したパスワードと一致しません。 <br/>
   <?php } else {?>
   削除しました<br />
  <?php } //if文終わり?>