PHPで配列と文字列の変換をデータベースに応用する方法

ウェブコーディング

データベース検索などを利用するときに、$_POSTや$_GETで受け取った文字列を配列に変換してデータベース関数に渡す処理をする場面はよくあります。

そんな処理を実行するには・・・

というメモ書きです。

implode、explodeで文字列⇔配列

implode()は配列の各要素を任意の文字列でつなげた文字列を生成する関数です。

implode ( string $glue , array $pieces )

$glueに接続する文字列を、$piecesに文字列を要素とする配列を指定すると、$piecesの各要素を$glueでつなぎあわせた文字列を返します。

$arr = array(
    'てすと',
    'テスト',
    'test',
    'TEST'
);

$txt = implode('=', $arr);

print_r($txt);

出力結果はこうなります。

てすと=テスト=test=TEST

explode()は任意のセパレータで文字列を分割し、分割した文字列を要素とする配列を生成します。

explode ( string $delimiter , string $string [, int $limit ] )

$delimiterにセパレータを、$stringに文字列を指定すると、$string中で$delimiterにマッチする部分で文字列を分割し、配列として返します。

$arr1 = explode('=', $txt);
print_r($arr1);

出力結果はこうなります。

Array
(
    [0] => てすと
    [1] => テスト
    [2] => test
    [3] => TEST
)

implode、explodeを使って
フォーム入力からデータベースを検索する

idtag
0001aphp 基本 配列
0002bphp 基本 文字列
0003cJAVA 基本 配列
0004dJAVA 応用 配列
0005ePHP 基本 配列

上のようなテーブルのidカラムをフォーム入力された文字列から検索してみます。

テーブル名は data としておきます。

//フォームなどから取得した全角・半角混合のテキスト
$string = 'PHP 基本 配列';
//全角スペースを半角スペースに変換
$str = mb_convert_kana($string, 's', 'UTF-8');

//半角スペースで文字列を分割
$strArr = explode(' ', $str);

//空の配列を準備
$tmpArr = array();

//foreachで分割した要素ごとにSQL文をつくる
foreach($strArr as $str){
 $tmpArr[] = '"tag" LIKE "%'.$str.'%"';
}

//AND条件の場合のWHERE句 OR条件ならANDをORに変える
$terms = implode(' AND ', $tmpArr);

//WHERE句を作る
$where = 'WHERE '.$terms.';';

//テスト用SQLiteデータベースに接続
$db = new PDO('sqlite:./db/test.db');

//検索語句に該当するidを検索
$stm = 'SELECT "id" FROM "data" ';
//上で作ったWHERE句をつなげる
$stm .= $where;
//SQLを実行
$res = $db->query($stm);
$resArr = $res->fetchAll();
print_r($resArr);

最後にprint_r()で表示されるテキストは次のようなります。

Array
(
    [0] => Array
        (
            [id] => 0001a
            [0] => 0001a
        )

    [1] => Array
        (
            [id] => 0005e
            [0] => 0005e
        )

)

今回はimplode()、explode()を使って文字列を操作して、データベース中の語句を検索しました。

文字列に対して定形の処理をする場合にはかなり有効な方法です。

 

tipLogtipLog

tipLog

inkscape・GIMPを使ったデザインお勉強ブログ。WordPressなどのウェブ関連のお勉強もしています。2019年6月にInkscapeの書籍を出版しました。 現在は個人事業主向けのホームページやブログ導入のお手伝いをしています。

関連記事

特集記事

コメント

この記事へのコメントはありません。

CAPTCHA


tipLogtipLog

tipLog

inkscape・GIMPを使ったデザインお勉強ブログ。WordPressなどのウェブ関連のお勉強もしています。2019年6月にInkscapeの書籍を出版しました。 現在は個人事業主向けのホームページやブログ導入のお手伝いをしています。

Inkscapeの入門書

ランキング

  1. inkscapeで取り込んだJPGやPNG画像をトリミングをする方法

  2. inkscapeで「フチ文字」を作る方法2つ+ちょっとした応用

  3. inkscapeの基本機能だけで矢印を描く方法

  4. PHPでデータベースから取得した配列を加工する方法

  5. 超簡単!inkscapeで直角三角形を作る方法

  6. inkscapeの使い方を集めたスキルアップのための日本語チュートリアル集

  7. inkscapeの「整列と配置」でオブジェクトを綺麗に並べて表を作る方法

inkscapeを学ぶ

TCDテーマ「Switch」
TOP