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する。