cocoa MySQLが使いやすい。
Macユーザーならcocoa MySQLを使うのが良さそう。
workbenchよりも安定しているし、余計な設定必要なし。
http://code.google.com/p/sequel-pro/
ER図はかけないけどね。
それは失敗したコピー用紙の裏でいいもんね。
XAMPP for mac で MySQL Workbenchを動作させる。
Macには標準でapache搭載されているのですが、DBの設定とかその他面倒でしょうがない。
というわけでXAMPPのmac版があったのでインストールしました。
http://www.apachefriends.org/jp/xampp-macosx.html
これは、公式サイトで丁寧に説明してくれているので、何の問題もなくインストール〜動作しました。
DL後にXAMPPのフォルダごと/ApplicationにD&D。以上終了。
この際ホームディレクトリが/Application/以下になる違和感はありますが問題なしです。
さらに、ここから
ER図が簡単にかけてしまったり、そこで作成したモデルをそのままDBと同期させたり出来る便利ツール
MySQL Workbenchを使うときにいろいろ設定が必要でした。
http://www-jp.mysql.com/products/workbench/
といってもMySQLのスタートストップでしかないのですが。
MySQL Workbenchを立ち上げて、一番右下
"Manage Server Instance"から設定画面
"System Profile"タブ内を以下のように設定
System Type:Mac OS X Installation Type:Custom(なければデフォルト) Configration File:/Applications/XAMPP/etc/my.cnf Instance Name:mysqld Start MySQL:/Applications/XAMPP/xamppfiles/xampp startmysql Stop MySQL:/Applications/XAMPP/xamppfiles/xampp stopmysql Check MySQL Stats:ps xa | grep "/Applications/XAMPP/xamppfiles/bin/[m]ysqld"
以上です。
Server Statsは特に変更していませんが動いてます。
xmlをパースしてテーブルで表示
simplexml_load_file($file);
という関数。
例えばこんなxmlファイルがあったとします。
[member.xml] <?xml version="1.0" encoding="UTF-8" ?> <data> <members> <member> <kanjiName>高橋真依子</kanjiName> <nicname>まいち</nicname> <profile>ジェリガです</profile> </member> <member> <kanjiName>山本優希</kanjiName> <nicname>ゆうき</nicname> <profile>ジェリガ2です</profile> </member> <member> <kanjiName>森摩耶 </kanjiName> <nicname>もりまや</nicname> <profile>ジェリガ3です</profile> </member> </members> </data>
で、これを表示。
<?php $file = "./member.xml"; $d = simplexml_load_file($file); echo "<table>"; foreach($d -> members -> member as $data){ echo "<tr><td>"; echo $data -> kanjiName; echo "</td><td>"; echo $data -> nicname; echo "</td><td>"; echo $data -> profile; echo "</td></tr>"; } echo "</table>"; ?>
ポイントはどこが配列になっているか。
var_dumpして、ループになるところをしっかり把握すること。
配列を改行区切りで表示
<html> <script type="text/javascript"> var ary = new Array(); ary.push('maichi'); ary.push('maya'); ary.push('yuki'); var a = "\n" var b = ary.join( a ); alert( b ); </script> </html>
とは言ってもOS毎に改行コードは本来違うので、
if(navigator.userAgent.indexOf == "Mac")
みたいなことをしなければならないのですが、
最新技術を結集したOSなので、別に平気なんだそうです。
連想配列を比較して差を求める
前回エントリの配列がハッシュだったとき。
<?php $ary1 = array('katou'=>1,'shibasaki'=>1,'aoi'=>1,'kitagawa'=>1); $ary2 = array('katou'=>1,'shibasaki'=>1,'kitagawa'=>1); $a1 = array_keys($ary1); $a2 = array_keys($ary2); foreach ( $a1 as $item ){ $a = array_search($item, $a2); //var_dump(array_search($item, $ary2)); if ( $a === false ){ echo ($item); } } ?>
array_keys();
で連想配列のkey値だけを取って、それを新しい配列にして比較しました。
って、これは本質的じゃないような気がするなー。
配列を比較して差を求める 2
前回のエントリでarray_diffという関数で配列の差を求めましたが、
これを、別の方法で実現。
<?php $ary1 = array('katou','shibasaki','aoi','kitagawa'); $ary2 = array('katou','shibasaki','kitagawa'); foreach ( $ary1 as $item ){ $a = array_search($item, $ary2); if ( $a === false ){ echo ($item); } } ?> //$ary1を存在する分一つずつ$itemに入れ替えて、 //$ary2の中から$itemを探す。その結果を$aとして //$aがfalse(つまり見つからなかったとき) //その時の$item($ary1にあって$ary2になかったもの)をechoする。