140227訓練
今日も正規化について。 昨日と同じように解説サイトを見てお勉強。 正規化の勉強に使ったサイト 第4回 データベースの正規化 – OSS-DB 基本情報技術者 平成21年春期 午前問32 – 基本情… 続きを読む »
今日も正規化について。 昨日と同じように解説サイトを見てお勉強。 正規化の勉強に使ったサイト 第4回 データベースの正規化 – OSS-DB 基本情報技術者 平成21年春期 午前問32 – 基本情… 続きを読む »
今日はSQL文。復習がてら新しい命令。 カラムに別名をつける As句を使う。結果セットのフィールドの名前が変わる。 CHANGE句のようにテーブルのフィールド名を変更したりはしない。 SELECT 別名をつけたいフィール… 続きを読む »
久しぶりの更新。 さぼってたわけじゃないよ!課題ばかりで新しいことが無かったから書かなかっただけだよ! 今日も課題ですが、一点引っかかったので記事に。 ORDER BY句が効かない? formの入力値を使ってテーブルをソ… 続きを読む »
昨日からのお題。 英単語テーブル「words」を検索するページを作る。 ページャー付きでモリッと作ったのでコードをドーンッ! 検索ページを作る コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
<?php require_once '../php_include/Encode.php';// 文字エンコード用のファイル require_once '../php_include/db_connect.php';// DBテーブル読み込み用ファイル $db = getDB();//db_connect.phpで定義したPDOオブジェクトを返す関数 // 検索パターンの配列 $types = array( 'begin' => 'から始まる', 'part' => 'を含む', 'end' => 'で終わる', 'perf' => 'と一致する' ); // 検索語 $word = $_GET['word']; if ($_GET['type'] == 'begin') { $word = $_GET['word'].'%'; $type = $types['begin']; } elseif ($_GET['type'] == 'part') { $word = '%'.$_GET['word'].'%'; $type = $types['part']; } elseif ($_GET['type'] == 'end') { $word = '%'.$_GET['word']; $type = $types['end']; } else { $word = $_GET['word']; $type = $types['perf']; } // テーブル検索 $stt = $db->prepare('SELECT * FROM words WHERE title LIKE (:title)'); $stt->bindValue(':title', $word); $stt->execute(); // ページ数チェック if (preg_match('/^[1-9][0-9]*$/', $_GET['page'])) { $page = (int)$_GET['page']; } else { $page = 1; // 不正な値は全て1ページ目にする } // ページャー生成 const WORDS_PER_PAGE = 20; // 1ページあたり表示件数指定 $result = $stt->fetchAll(); // 検索結果の配列 // $total = $stt->rowCount(); // fetchしてarray_pushしてた時のためらい傷。fetchAllに変えたので要らなくなった。そもそもarray_pushしたものをcountすればcountで良かった。 $total = count($result); $totalPages = ceil($total / WORDS_PER_PAGE); $offset = WORDS_PER_PAGE * ($page - 1); // 開始件数 $from = $offset + 1; $to = ($offset + WORDS_PER_PAGE) < $total ? ($offset + WORDS_PER_PAGE) : $total; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>検索</title> </head> <body> <h1>英単語検索</h1> <div id="search_box"> <p>検索語を入力して検索ボタンを押してください。</p> <form action="" method="get"> <div> <label for="word">検索語:</label> <input type="text" name="word" value="<?php echo e($_GET['word']); ?>"> <?php foreach ($types as $key => $value): ?> <input type="radio" name="type" value="<?php echo $key; ?>" <?php if ($key == $_GET['type']) { echo ' checked'; } ?>><?php echo $value; ?> <?php endforeach; ?> </div> <input type="submit" value="検索"> </form> </div> <?php if ($_GET != NULL): ?> <div id="result_box"> <h2><?php print('"'.e($_GET['word']).'" '.$type); ?>単語</h2> <p>検索結果:全<b><?php echo $total; ?></b>件中 <b><?php echo $from; ?></b>件~<b><?php echo $to; ?></b>件を表示</p> <table border="solid 1px #FFFFFF"> <tr> <th>ID</th> <th>単語</th> <th>意味</th> </tr> <?php for ($i=$offset; $i < $to; $i++): ?> <tr> <td><?php echo e($result[$i]['word_id']); ?></td> <td><?php echo e($result[$i]['title']); ?></td> <td><?php echo e($result[$i]['body']); ?></td> </tr> <?php endfor; ?> </table> <div id="pager"> <?php if ($page > 1): ?> <a href="?word=<?php echo e($_GET['word']); ?>&type=<?php echo e($_GET['type']); ?>&page=<?php echo $page-1; ?>">前</a> <?php endif; ?> <?php for ($i=1; $i <= $totalPages; $i++): ?> <?php if ($page == $i): ?> <b><?php echo $i; ?></b> <?php else: ?> <a href="?word=<?php echo e($_GET['word']); ?>&type=<?php echo e($_GET['type']); ?>&page=<?php echo $i; ?>"><?php echo $i; ?></a> <?php endif; ?> <?php endfor; ?> <?php if ($page < $totalPages): ?> <a href="?word=<?php echo e($_GET['word']); ?>&type=<?php echo e($_GET['type']); ?>&page=<?php echo $page+1; ?>">次</a> <?php endif; ?> </div> <?php endif; ?> </div> </body> </html> |
ペ… 続きを読む »
結構復習っぽい内容ですが、 項目としてまとまってたのでもう一度。 時間に関する関数 time 現在のUnixタイムスタンプを返す。 コード echo time(); 出力結果 1392683415 三十日後を出したいとい… 続きを読む »
明らかにSQLやってるのでカテゴリ追加しました。データベース。 今日はちゃんとPHPもするよ! PHPからデータベースに接続する PDOを使います。
1 2 3 4 5 6 |
<?php try { $db = new PDO('mysql:host=localhost;dbname=lesson_db;charset=utf8', 'user', 'pass'); } catch(PDOException $e) { exit('接続失敗:'.$e->getMessage()); } |
PD… 続きを読む »
今日からデータベース。 phpMyAdminを利用したデータベースの作成 前に訓練とは関係なくphpMyAdminをアップグレードしたわけですが今回はデータベース作ります。 とりあえずログインします。 xamppだとコン… 続きを読む »
今日はテストなので、一昨日やったことを自習の時間を使ってカキカキします。 クラスを作る Javaみたいに作れます。 __constructでコンストラクタ宣言も出来ます。 マニュアル見ると継承とかも使えるみたいです。 三… 続きを読む »
昨日はマーティがチキンって言われた時のように切れてしまった。 目の前に言った相手がいなくてよかった。 言われるまで気付かなかった言われたくないワードって意外なところにあるもんだなぁと思いつつ、子どものように荒れたことをち… 続きを読む »