ウェブコーディング

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

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

 

PHPでデータベースから取得した配列を加工する方法前のページ

メトトレキサートと青汁の相性が悪い理由次のページ

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

tipLog

関連記事

  1. ウェブコーディング

    WEB言語を手を動かして1から学べるサイト

    HTML・CSS・PHPなどのウェブ系の言語をどれくらい理解しているで…

  2. ウェブコーディング

    WordPressの子テーマを作るときのひな型テンプレートがあるんですが…

    WordPressのカスタムをするときは子テーマを使った方が効率的で、…

  3. ウェブコーディング

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

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

  4. ウェブコーディング

    NetBeansでSQliteのドライバーを有効にするプラグイン

    PHPなどのwebアプリケーションを作成できるNetBeansですが、…

  5. ウェブコーディング

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

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

  6. ウェブコーディング

    WordPressでも簡単に使えるってほんと?会話風吹き出しのCSSテンプレート

    会話風吹き出しのテンプレートとして使えるCSSを作ってみました。会…

コメント

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

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

CAPTCHA


スポンサードリンク

スポンサードリンク

inkscapeを学ぶ

Inkscapeの入門書

カテゴリー

ピックアップ記事

  1. 特集

    無料でクオリティが高く、検索機能が利用できる画像素材サイト3選
  2. ブログの収益化

    報酬の受取に苦労してません?初心者でもAmazon・楽天のアフィリエイトで効率的…
  3. ブログやサイトの作り方

    月額100円から使える「ロリポップレンタルサーバー」
  4. 特集

    inkscapeの使い方を集めたスキルアップのための日本語チュートリアル集
  5. グラフィックデザイン

    自作?外注?その前にコレ!ブログのロゴデザインをするなら「Logaster」を使…
PAGE TOP