ウェブコーディング

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. ウェブコーディング

    AdSenseのモバイル向けページ単位の広告をWordPressに設置する方法

    AdSenseにモバイル用のページ単位の広告という機能が追加されてしば…

  3. ウェブコーディング

    PHPの基本的な文法と変数のまとめ

    どんなPHP文でも必ず従わなければいけない文法があります。その初歩…

  4. ウェブコーディング

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

    データベースからデータをfetch関数などで取得すると、大体は2次元配…

  5. ウェブコーディング

    CSSのfloatを使ってリキッドレイアウトを組んでみた

    先日ふと思い立って、一からWEBサイトをデザインし始めることにしたので…

  6. ウェブコーディング

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

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

コメント

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

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

CAPTCHA


スポンサードリンク

スポンサードリンク

inkscapeを学ぶ

Inkscapeの入門書

カテゴリー

ピックアップ記事

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

    自作?外注?その前にコレ!ブログのロゴデザインをするなら「Logaster」を使…
  2. ブログやサイトの作り方

    TCDテーマ比較「CUBEY」と「BlogPress」どっちがいい?
  3. ブログやサイトの作り方

    月額100円から使える「ロリポップレンタルサーバー」
  4. ブログの収益化

    報酬の受取に苦労してません?初心者でもAmazon・楽天のアフィリエイトで効率的…
  5. 特集

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