Wikipokpok:ブログ

提供: wikipokpok
2009年4月23日 (木) 21:00時点における192.168.1.2 (トーク)による版

移動先: 案内検索

Zend Frameworkについて

Zend_Db_Tableでのjoin

setIntegrityCheck(false)を書かないとエラーになるので注意。

$table = new Bugs();
$select = $table->select()->setIntegrityCheck(false);
$select->where('bug_status = ?', 'NEW')
      ->join('accounts',
             'accounts.account_name = bugs.reported_by',
             'account_name')
      ->where('accounts.account_name = ?', 'Bob');
$rows = $table->fetchAll($select);

Zend_Paginator

Zend_Paginatorの使い方を教えてください。リファレンスガイドを見ましたが分かりません。検索をかけても情報がありません。クイックスタートに組み込みたいと思っています。どなたかよろしくお願いします。--住職 2009年2月3日 (火) 18:16 (JST)

5つ表示してページを移動します。
右図のようにできました。参考にしたページは次の三つです。[1][2][3]--住職 2009年2月4日 (水) 11:50 (JST)
  • GuestbookController.php
    public function indexAction()
   {
       $model = $this->_getModel();
       //$this->view->entries = $model->fetchEntries();
       $entries = $model->fetchEntries();
       $paginator = Zend_Paginator::factory($entries);
       //1ページに表示するエントリ数
       $paginator->setItemCountPerPage(5);
       $paginator->setCurrentPageNumber($this->_request->getParam('page'));
       $this->view->paginator = $paginator;
   }
  • /views/scripts/guestbook/index.php
   <? //foreach ($this->entries as $entry): ?>
   <? foreach ($this->paginator as $item): ?>
   <?= $this->escape($item['id']) ?>[<?= $this->escape($item['name']) ?>]
   <?= $this->escape($item['comment']) ?>
   <?= $this->escape($item['created']) ?>
   <? endforeach ?>
   //pagination_control.phtmlは/views/scripts/内につくる。
   <?= $this->paginationControl($this->paginator, 'Sliding', 'pagination_control.phtml'); ?>
  • /views/scripts/pagination_control.phtml
<?php if ($this->pageCount): ?>  
<?php if (isset($this->previous)): ?> 
 <a href="<?= $this->url(array('page' => $this->previous)); ?>">前へ</a>
<?php else: ?> 
 前へ
<?php endif; ?> 
<?php foreach ($this->pagesInRange as $page): ?> 
 <?php if ($page != $this->current): ?>
   <a href="<?= $this->url(array('page' => $page)); ?>"><?= $page; ?></a>
 <?php else: ?>
   <?= $page; ?>
 <?php endif; ?>
<?php endforeach; ?>
<?php if (isset($this->next)): ?> 
 <a href="<?= $this->url(array('page' => $this->next)); ?>">次へ</a>
<?php else: ?> 
 次へ
<?php endif; ?>  
<?php endif; ?>

以上で、selectした結果をグーグルのようにページ移動できるようになりました。


Zend Frameworkとコンソールの文字化け

データベースに接続するとき、文字コードを UTF-8 に設定すると回避できる。クイックスタートではbootstrap.phpを次にのようにした。

$dbAdapter = Zend_Db::factory($configuration->database);
// 文字コードを UTF-8 に設定する
$dbAdapter->query("set names 'utf8'");

Mysqlについて

CREATE TABLE構文のみ出力する

$ mysqldump -d -u hoge -p データベース名 > 出力ファイル名

AUTO_INCREMENTの開始番号を指定する。

mysql> ALTER TABLE hoge AUTO_INCREMENT=100;

データベースごとに文字コードを設定する。

mysql> SET NAMES utf8;        ....utf8,ujis

文字コードの確認

mysql> SHOW VARIABLES LIKE 'character\_set\_%';

phpからのクエリで文字化けするときの対策。

$db = mysql_connect("localhost", "hoge", "piyo");
mysql_select_db("poyo",$db);
mysql_query("SET NAMES utf8");


http://www.myspace.com/kungfoolfighting

EmEditor Freeのインストール

コマンドプロンプトから次のようにしました。--住職 2008年7月25日 (金) 14:18 (JST)

emed6004jfx.msi /passive

サラ川に 今年も映る 世相かな

私は57がお気に入りです。--住職 2008年7月21日 (月) 23:33 (JST)

西暦元号対照表

過去帳整理のときに便利です。--住職 2008年7月10日 (木) 17:05 (JST)