• ベストアンサー

フィールドの先頭10文字だけ表示させたい

このような感じでやってみたのですが、 ちゃんと表示しません。 pr と言うフィールドの先頭10文字を表示させたいのです 初心者です、よろしくお願いいたします。 $body .= "<a href='../m/" .$col["id"] . "s.html'>★</a>" . "$col(pr,1,10)" . "<br>" ;

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.3

> $body .= "mb_substr($col['pr'],0,10)" . "<br>" ; 単純に、 $body .= mb_substr( $col['pr'], 0, 10 ) . "<br>" ; ――で良いかと。 もしかして、文字列操作は必ず二重引用符で囲まなければいけないと思い込んでるとか。 SQLを使ってるなら、クエリ(すなわちデータベース側)で10文字区切りにする手もあります。

kiyomidesuyo
質問者

お礼

ありがとうございます、 ちゃんと表示いたしました!! 文字列は必ず二重引用符で囲まないといけないと 思っていました。。 それからうまく行かない時にはずしたり 色々していました。 本当にありがとうございました。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>pr と言うフィールドの先頭10文字を表示させたい substr($col['pr'],0,10) マルチバイト文字列の場合は mb_substr を使う

参考URL:
http://jp.php.net/manual/ja/function.substr.php
kiyomidesuyo
質問者

補足

回答ありがとうございます。 なかなかうまくいきません。 以下のようなエラーが返ってきました。 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /virtual/wave/public_html/mng/test.php on line 24 下記に全文記させていただきましたので 目を通していただけませんか。。 宜しくお願いいたします。 24行目はこの行です $body .= "mb_substr($col['pr'],0,10)" . "<br>" ; なお、この行を $body .= $col['pr'] . "<br>" ; こう書くと普通に表示します。 <?php //データベース関連のデータをインクルードします require_once("dbini.php"); //MySQLに接続します $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); //データベースを選択します $selectdb = mysql_select_db($DBNAME, $con); //3件抽出するSQL文を組み立てます $sql =" select * from mem order by regdate limit 3" ; //結果セットを取得します $rst = mysql_query($sql, $con); $body .= "<hr>新着更新情報<br>"; //結果セットからデータを読み込みます while($col = mysql_fetch_array($rst)) { $body .= "mb_substr($col['pr'],0,10)" . "<br>" ; } mysql_free_result($rst); $con = mysql_close($con); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>無題ドキュメント</title> </head> <body> <?= $body ?> </body> </html>

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

部分文字列を取得する関数として、 substr()/mb_substr() を利用できます。詳しくは、PHPのリファレンスをご覧ください。 初心者という事ですので、最初のうちは、 試験的なコード(文字列を変数に代入して、その変数でsubstrを呼び出した結果を出力するような2行程度のもの。)を書いて、どういう挙動するかを学習してったほうが、マスターの近道になると思います。

参考URL:
http://jp.php.net/manual/ja/
kiyomidesuyo
質問者

補足

アドバイスありがとうございます!! リファレンスなどじっくり読んでからの方が 効率もいいだろうとは思うのですが、 これだけは先にする必要に駆られて 皆さんの手を煩わせています。。 先ほどの物ですが、エラー表示になります 言われたように変数に文字を入れるとそのまま表示してしまいます。**5文字でして見ました $body .= "mb_substr('あいうえおかきくけこさし',0,5)" . "<br>" ; 表示 ↓ mb_substr('あいうえおかきくけこさし',0,5) mb_substr('あいうえおかきくけこさし',0,5) mb_substr('あいうえおかきくけこさし',0,5) スミマセン、宜しくお願いいたします。

関連するQ&A