MySQL:MySQLのユーザ追加と削除

MySQLユーザ追加した時の方法をメモします。
サーバを移行する時や別のサーバのデータベースを参照する時などに必要になると思います。

MySQLのユーザはmysqlデータベースの「user」テーブルで管理されています。

下記にMySQLユーザ追加(新規作成)削除する方法をメモします。


MySQLのユーザ追加

SSHでサーバに入り、MySQLにログインします。

$ mysql -u root -p

hogeユーザを追加し、全ての権限を与える場合

mysql> GRANT ALL PRIVILEGES ON *.* TO hoge@"%" IDENTIFIED BY "password" WITH GRANT OPTION;

ユーザ情報を反映させる為に下記を実行します。

mysql> FLUSH PRIVILEGES;

localhostで指定する場合は、下記のように記述します。

mysql> GRANT ALL PRIVILEGES ON *.* TO hoge@"localhost" IDENTIFIED BY "password" WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

IPアドレスで指定する場合は、下記のように記述します。
「xxx.xxx.xxx.xxx」をIPアドレスに書き直します。
別のサーバのMySQLを参照する場合などに使えます。

mysql> GRANT ALL PRIVILEGES ON *.* TO hoge@"xxx.xxx.xxx.xxx" IDENTIFIED BY "password" WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

MySQLのユーザ削除

ユーザを削除する場合はDELETE文で削除します。

mysql> DELETE FROM mysql.user WHERE User="hoge";
mysql> FLUSH PRIVILEGES;

データベースを確認し、削除されていればOKです。


php:配列の中身を逆順にする方法

phpで配列を使用する時は頻繁にあると思いますが、配列の中身を逆順で使用したい場合があります。
array_reverse()関数を使用すれば、簡単に配列の要素を逆順にソートすることができます。

今回はphparray_reverse()関数を使用して、配列中身逆順にする方法をメモします。


array_reverse()関数

引数で指定した配列の要素を逆順にして、配列を返します。

$array = array_reverse($array);

使用方法(array_reverse)

下記の配列を逆順にしたい場合

Array
(
    [0] => aaa
    [1] => bbb
    [2] => ccc
    [3] => ddd
    [4] => eee
)

array_reverse()で配列の中身を逆順にします。

$arr = array('aaa', 'bbb', 'ccc', 'ddd', 'eee');
$arr = array_reverse($arr);

結果は以下のような配列が返ります。

Array
(
    [0] => eee
    [1] => ddd
    [2] => ccc
    [3] => bbb
    [4] => aaa
)

・多次元配列の場合

Array
(
    [0] => aaa
    [1] => Array
        (
            [0] => 111
            [1] => 222
        )

)

上記の配列をarray_reverse()で逆順にした場合は配列の中の配列は逆順になりません。

Array
(
    [0] => Array
        (
            [0] => 111
            [1] => 222
        )

    [1] => aaa
)

配列の値を逆順にソートして出力するときなどに使えますね。

jQuery:jQueryで開くメニューの作成方法

WEBサイトサイドバースマートフォンのサイトなどで、クリックするとアコーディオンのように開いたり、閉じたりするメニューがあります。

jquery_openmenu3

jQueryの「slideToggle()」を使用すれば簡単に実装することができます。

jQueryで見出しをクリックした時に開いたり閉じたりするアコーディオンメニューを作成する方法をメモします。


slideToggle()

$("p").slideToggle([speed], [callback]);

指定した要素をスライドしながら、表示のものを非表示にし、非表示のものを表示にします。

[speed]にはスライドするスピードを指定します。
「”slow”」「”normal”」「”fast”」か「1000」のように数値で記述します。
デフォルトでは「”normal”」が指定されています。

[callback]にはスライド完了後に呼び出したい処理を記述します。
処理がない場合は記述しません。


開くメニュー・閉じるメニュー

JS

jQueryを読み込み、下記のコードを記述します。
「accordion」クラス内の「p」タグがクリックされた場合、処理するように設定しています。
クリックした要素の次の「ul」タグを表示・非表示します。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
    $('.accordion p').click(function(){
        $(this).next('ul').slideToggle(500);
    });
});
</script>

CSS

アコーディオンメニューのスタイルを指定します。
アクセス時は「ul」タグを「display:none;」で非表示にするように設定しています。

<style type="text/css">
div#menu {
    width: 300px;
    border: 1px solid #CCC;
    padding: 10px;
    margin: 10px;
}
ul.accordion ul {
    display:none;
}
p.click {
    display: block;
    padding: 10px 0;
    border-bottom: 1px dotted #0099CC;
}
ul.accordion .list {
    padding-left: 20px;
}
ul.accordion .list li {
    padding: 10px 0;
}
</style>

HTML

見出しの箇所は「p」タグで指定し、表示・非表示したいメニューをpタグの後に記述します。
下記のようにリストの中にさらにリストを作ることも可能です。

<div id="menu">
    <ul class="accordion">
        <li>
            <p class="click">○テスト1</p>
            <ul class="list">
                <li><a href="#">テスト1-1</a></li>
                <li><a href="#">テスト1-2</a></li>
                <li>
                    <p class="click">○テスト3</p>
                    <ul class="list">
                        <li><a href="#">テスト3-1</a></li>
                        <li><a href="#">テスト3-2</a></li>
                        <li><a href="#">テスト3-3</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>
            <p class="click">○テスト2</p>
            <ul class="list">
                <li><a href="#">テスト2-1</a></li>
                <li><a href="#">テスト2-2</a></li>
                <li><a href="#">テスト2-3</a></li>
            </ul>
        </li>
    </ul>
</div>

アクセス時は下記のように閉じた状態で表示されます。

jquery_openmenu1

見出し部分をクリックすると非表示になっているメニューがスライドして開きます。

jquery_openmenu2

さらにメニューの中にメニューがある場合、見出しをクリックすると下記のように表示されます。

jquery_openmenu3

開いたメニューの見出しを再度クリックすればメニューを閉じることができます。


メニューが多い場合など、WEBサイトが縦に長いサイトなってしまいますが、
これを使用すればスッキリとまとめて表示させることができると思います。