• ベストアンサー

SQLにあるデータをWEB画面に出力するときに、フィールドの値を編集して表示させたい

SQLにあるデータをWEB画面に出力するときに、 フィールドの値を編集して出力したいと考えています。 具体的には、フィールドの値が5~10桁の数字で、 WEB画面には下3桁目に「-]を入れたいと考えています。 例(1)SQLの番号フィールドの値:123456 WEB表示:1234-56 例(2)SQLの番号フィールドの値:12345 WEB表示:123-45 どうぞ宜しくお願い致します。 ****************************************************** 作成したPHP 番号フィールドの値を編集して表示したい ****************************************************** <?php $cont = mssql_connect("サーバ名","ユーザ名","パスワード"); mssql_select_db('[DB名]', $cont); $sql = "select 氏名, 住所, 番号 from テーブル名 $rc = mssql_query($sql,$cont); while ($array = mssql_fetch_array($rc)) { print("<table><tr><td>"); print "".$array["番号"].""; print("</td><td>"); print "".$array["住所"].""; print("</td><td>"); print "".$array["氏名"].""; print("</td></td></table>"); } mssql_close($cont); ?>

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

番号がVARCHAR系のデータならこんな感じで SELECT `氏名`, `住所`,CONCAT(LEFT(`番号`,CHAR_LENGTH(`番号`)-2),"-",RIGHT(`番号`,2)) AS `番号` FROM `テーブル名` INT系のデータだとちょっと面倒そうなので省略

smorgas030
質問者

お礼

番号のデータ型はNCHARです。 回答ありがとうございます。 修正したら以下のようなエラーメッセージがでました。 Warning: mssql_query() [function.mssql-query]: message: 行 1: '0' の近くに無効な構文があります。 (severity 15) in C:\Program Files\…0821.php on line 100 この場合どうしたらいいのでしょうか。 よろしければご教授ください。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

あ・・・SQLserverでしたね。 しつこいようですが、SQLの種類は毎回明示方がよいとおもいます。 私はMySQLがベースなので・・・ SQLserverでは文字列結合は「+」でつなぐみたいですね・・・ 文字の長さはLEN関数のようです。

smorgas030
質問者

お礼

回答ありがとうございます。 修正できました。 (1)文字列の長さを求めて、(LEN) (2)文字列の左部分を取り出して、(LEFT) (3)文字列の右部分を取り出して、(RIGHT) (4)文字列を結合する (+) ↑のようにひとつづつ考えて、 組み合わせればいいのですね。 大変勉強になりました。 ありがとうございました。

  • ranuwe
  • ベストアンサー率33% (7/21)
回答No.1

$val = "123456"; // 方法1 echo preg_replace("/^(.+)(..)$/","$1-$2",$val); // 方法2 echo substr($val,0,strlen($val)-2) . "-" . substr($val,strlen($val)-2,2);

smorgas030
質問者

お礼

回答ありがとうございます。 知識不足のため、あまり理解できなかったので、 今回は、ANo.2様の回答を参考にさせていただきました。 ありがとうございました。

関連するQ&A