ウェブコーディング

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を使って
フォーム入力からデータベースを検索する

id tag
0001a php 基本 配列
0002b php 基本 文字列
0003c JAVA 基本 配列
0004d JAVA 応用 配列
0005e PHP 基本 配列

上のようなテーブルの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()を使って文字列を操作して、データベース中の語句を検索しました。

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

 

記事が気に入ったら
tipLog を "いいね!"
Facebookで更新情報をお届け。

tipLog

WordPressテーマ

WordPressテーマ「MAG(TCD036)」

スポンサードリンク

関連記事

  1. タイポグラフィ

    inkscapeのパス操作でテキストをポップにする方法

    特別なフォントを使わなくても、パス操作を使うことでポップな書体を作るこ…

  2. グラフィックデザイン

    inkscapeのタイルクローンでドットパターンを作る手順

    inkscapeを勉強し始めたとき、ドットパターンをinkscapeで…

  3. ウェブコーディング

    PHPなどのプログラムコードをUTF-8で保存するときの注意点

    サーバーで実行されるPHPやJavascriptなどをテキストエディタ…

  4. ウェブコーディング

    WordPressの記事内でPHPを実行した結果を表示する方法

    WordPressの記事内でPHPを実行できると、記事に表示できるコン…

  5. チュートリアル

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

    inkscapeには正三角形を作る機能(多角形・星形ツール)はあるので…

コメント

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

  1. この記事へのトラックバックはありません。

CAPTCHA


スポンサードリンク

ピックアップ記事

おすすめの本

使用している素材

カテゴリー

 
  1. グラフィックデザイン

    レイアウトデザインに最適な無料ソフト「inkscape」(≒Illustrato…
  2. グラフィックデザイン

    フォトレタッチ・グラフィックデザインの無料ソフト「GIMP」(≒Photosho…
  3. ブログ収益化

    無料レポートスタンドの「メルぞう・Xam」を120%使い倒す方法
  4. ブログ収益化

    脱初心者しませんか?Amazon・楽天のアフィリエイトを上手に活用するための予備…
  5. タイポグラフィ

    読みやすい明朝体フリーフォント
PAGE TOP