MySQL】集約関数GROUP_CONCAT(expr)


SELECT id, user_id FROM group_members where id = 1
id
user_id
1
1
1
2
1
3
1
4
SELECT id, group_concat(user_id separator ',') as members 
  FROM group_members WHERE id = 1 GROUP BY id;
id
members
1
1,2,3,4

8月の目標と計画

生活

  1. MACのノートブック購入:8月13日まで
  2. 保険検討:8月13日まで

運動・山

  1. ウォーキングかランニング:最低2回/週
  2. 暇があれば山へ行く:最低2回/月

RunKeeperで管理

ブログ

  1. 記事アップ:最低10回/月

1w2記事ペースで達成

技術

  1. WordPress 読書[WordPress開発入門]
  2. WordPress 情報サイト作成:9月5日一般公開
  3. Wdocomoの山座同定APIについて調べる:8月後半

1.2~3日で1章ペースで8月中に読み終わる

2.

第1~2週:ざっくりとしたサイト構成決定
第2~4週:実装
第4~5週:コンテンツ登録

3.

www.nttdocomo.co.jp

語学

  1. NHKラジオ聞き流し:基礎英語
  2. NHKラジオ聞き流し:まいにち中国語
  3. 文法:シグマ基本問題集 英文法

NHKゴガク マイ語学で管理

8月配信のものを全部聞く

 

cgi2.nhk.or.jp

3.週三回一日30分勉強する(時間量以外の目標は立てない)

やらないといけないこと

  1. ネットワーク関係の講習を選定する:8月10日まで
  2. 簡単なiOSアプリ開発 勉強スケジュール作成8月20日まで
  3. GIS(地理情報システム)を学習 勉強スケジュール作成8月25日まで

振り返り

毎週日曜日の夜にこの計画について確認、練り直しをおこなう

【WordPress】Windows7にVagrant+VCCW環境構築したとき詰まったこと覚書

トラブル1

vagrant初回起動に失敗(無反応)

Windows7では2017年07月29日時点の最新版1.9.7が使えなかったようだ。

こちらから一つ古い1.9.6をインストールしなおした事により、起動に成功。

トラブル2

SSH auth method: private keyで処理が止まる

使用マシンの仮想化機能設定が無効になっていたことが原因

BIOSIntel Virtual Technology項目をEnabledにしたことにより、成功。

*原因判明前の試行錯誤として、この設定の前にOpenSSHのインストールをしている。

インストール後もエラー状況が変わらなかったので、おそらくこのトラブルシューティングには関係ないと思われる。

 

f:id:kjtec:20170801230521p:plain

 

とりあえず、立ち上がった!

高尾山レポ1 稲荷山コース

6月10日に高尾山に登ってきたので、遅ればせながらレポを。

ルート

往路

  1. 稲荷山コース
  2. 5号路
  3. 城山

復路

  1. 城山
  2. 5号路
  3. 1号路(ケーブルカー)

稲荷山コース

高尾山には一般的な登山コースとして、1〜6号路、稲荷山コースがありまして、 今回はその中の稲荷山コース、5号路を通って高尾山頂を迂回し、城山まで行きました。

稲荷山コースは、高尾山のなかでは比較的本格的と言われているコースで、山歩きが楽しめます。

1.京王高尾線 高尾山口駅到着

f:id:kjtec:20170726230006j:plain

以前と比べてだいぶ綺麗になった高尾山口駅。トイレがちょっとしたデパートみたいに広くて清潔になってて感動。

売店で食料品はおろか登山グッズまで色々売っているので、空のザックと財布だけできても問題はなさげ。

 

2.ケーブル乗り場

f:id:kjtec:20170726231133j:plain

稲荷山コースに行くためには、まずケーブルカー乗り場を目指して歩きます。人の流れにのって歩けばまず間違いなく到着する。

 

3.稲荷山コースへの分岐

f:id:kjtec:20170726231758j:plain

ケーブルカー乗り場の脇に、稲荷山コースへの分岐があります。そして初手から階段(不安)

f:id:kjtec:20170726231830j:plain

 

3.旭稲荷

f:id:kjtec:20170726232250j:plain

歩き始めて間もなく稲荷神社があらわれます。

 

4.登山道

f:id:kjtec:20170726233454j:plain

f:id:kjtec:20170726233533j:plain

マイナスイオンが出てそうな爽やかな山道♪木の根が多く、少し歩きづらいです。

勾配もそれなり。

 

5.展望台

ケーブルカー乗り場を出発して30分ほどで展望台に到着です。高尾山山頂までだいたい半分くらいでしょうか。

f:id:kjtec:20170726234333j:plain

 

展望台からの眺望。

f:id:kjtec:20170726234608j:plain

 

5.山頂と5号路の分岐

展望台をあとにしどんどん進んでいくと、山頂へ向かう道と5号路が交差する分岐に到着します。

f:id:kjtec:20170726235133j:plain

今回は城山に行きたいため、山頂を迂回して最短の「もみじ台」「一丁平」方面に進みます。

(山頂混みそうだし...)

これにて稲荷山コース完。

感想

展望台の直前が一番キツく、そこ以外はそれほど大変じゃなかった。

今回で1号路から稲荷山コースまで一応(登り、下りの区別なく)全部通ったのですが、稲荷山コースはやや単調なので、 沢近くにあり橋や滝が楽しめる六号路のほうが歩いてて楽しいと思います。

あまり高尾山に行くチャンスがない人が、6号路と稲荷山コースで迷っていたら、6号路をおすすめ。

【Atom】PHP構文エラーを表示する

前提

PHPがインストールされていること

 

手順

  1. Atom>環境設定>設定タグを開く
  2. 設定画面のパッケージ検索フォームにlinter-phpと入力
  3. 検索結果からlinter-phpを探し、Installボタンを押す

f:id:kjtec:20170724223253p:plain

*linter-phpが依存しているパッケージがない場合、インストールを促すアラートが出てくるので、アラートに従って一緒にインストールする
(OKを押していくだけで完了)

*Windowsも同様

 

できました

f:id:kjtec:20170724223318p:plain

 

エラーが発生する場合

PHPのPATHが通っているか確認してみよう

【PHP】OGP出力 文字化け解消[対症療法]

OGPとは

Open Graph protocolの略。
SNSでURLがシェアされた際に、そのページのタイトル・URL・概要・アイキャッチ画像(サムネイル)を意図した通りに正しく表示させる仕組みのこと

やりたかったこと

自サイトの掲示板にURLが書き込まれたとき、リンク先のウェブサイトがOGPを設定をしていれば、その情報を出力する。
f:id:kjtec:20170719224329j:plain

トラブル

文字コードが正常に表示されるはずのUTF-8であるにも関わらず、一部のウェブサイトのサイト名や概要が文字化けした。
f:id:kjtec:20170719224210j:plain

原因

文字化けしてしまうウェブサイトのサイト名や概要は、utf8_encodeされたUTF-8だった。

解決方法

文字化けするテキスト(サイト名や概要)を、utf8_decodeでデコードすると正常に表示されるようになった。
もともと文字化けしていなかったテキストをutf8_decodeすると今度はそちらが文字化けしてしまうので、
utf8_decodeした結果UTF-8になるものだけをテキストとして採用する。

<?php
include_once 'OpenGraph.php';

$graph = OpenGraph::fetch($url);
$title = $graph->title$title_check = utf8_decode($title);
if(mb_detect_encoding($title_check) == 'UTF-8'){
    $title = $title_check; // 文字化け解消
}

$detects = array(
 'ASCII','EUC-JP','SJIS', 'JIS',
  'CP51932','UTF-16', 'ISO-8859-1'
);

// 上記以外でもUTF-8以外の文字コードが渡ってきてた場合、UTF-8に変換する
if(mb_detect_encoding($title) != 'UTF-8'){
    $title = mb_convert_encoding($title, 'UTF-8', mb_detect_encoding($title, $detects, true));
}

【XOOPS】MySQL プリペアドステートメント 書式

<?php
    $query = "SELECT column1, column2, column3"
    $query = " FROM " . $xoopsDB->prefix('sample');
    $query .= " WHERE id = ?";

    $xoopsDB->prepare($query);
    $xoopsDB->bind_param('i', $id);
    $result = $xoopsDB->execute();
    $dbdata = $xoopsDB->fetchArray($result);

条件式が複数ある時のbind_paramの設定の仕方

$query .= “ WHERE id = ? AND column_name = ?

$xoopsDB->bind_param(‘is’, $id, $name);

第1引数に、渡す値の型を指定
その文字数分の値を第2引数、第3引数…を指定する

第1引数で指定する文字列の種類は以下の通り:

case "i": intval
case "s": string
case "d": doubleval
case "b": // Exception die();

参考

XoopsCube: D:/XC2.1_alpha3/html/class/database/mysqldatabase.php ソースファイル