140311訓練
久々に平のPHP。どうやら今日はテストの模様。 久々すぎて記事の書き方に戸惑う・・・ ファイルのアップロード ちょっと関数と変数がお祭りなので割愛(手抜き JSON JSONとは JSONの紹介 JavaScript O… 続きを読む »
久々に平のPHP。どうやら今日はテストの模様。 久々すぎて記事の書き方に戸惑う・・・ ファイルのアップロード ちょっと関数と変数がお祭りなので割愛(手抜き JSON JSONとは JSONの紹介 JavaScript O… 続きを読む »
久々の訓練記事。 今日はPHPのフレームワークについて。 フレームワーク 概念 PHP直書き→マニュアル車 フレームワーク→オートマ車 フレームワークは共同開発に向いている。 フレームワーク特有の関数などが用意されていて… 続きを読む »
久しぶりの更新。 さぼってたわけじゃないよ!課題ばかりで新しいことが無かったから書かなかっただけだよ! 今日も課題ですが、一点引っかかったので記事に。 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でコンストラクタ宣言も出来ます。 マニュアル見ると継承とかも使えるみたいです。 三… 続きを読む »
昨日はマーティがチキンって言われた時のように切れてしまった。 目の前に言った相手がいなくてよかった。 言われるまで気付かなかった言われたくないワードって意外なところにあるもんだなぁと思いつつ、子どものように荒れたことをち… 続きを読む »
記事の並びを降順にする コード
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php $data = @file('ファイル名', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) or die('ファイルが開けませんでした'); $cnt = count($data); print('<dl>'); foreach (array_reverse($data) as $row): $datum = explode("\t", $row); ?> <dt><?php printf('%02d.%s', $cnt, e($datum[1])); ?>(<?php print(e($datum[0])); ?>)</dt> <dd>メッセージ:<?php print(e($datum[2])); ?></dd> <hr /> <?php $cnt--; endforeach; print('</dl>'); ?> |
ファイルを読み込んで中身ひっくり返す的な動き。 file ファイル全体を読み込んで配列に格納する。 第一引数:ファイルパス… 続きを読む »