• ベストアンサー

フィールドの先頭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

  • ウィンドウサイズと文字の表示位置指定

    縦2分割フレーム(フレームサイズは固定)のページの左側のコンテンツメニュー一覧を置いてます。 文字は今現在左寄せ指定です。 そのメニュー一覧文字の見え方を、左寄せ・ウィンドウ底辺合わせのデザインにしたいと思ってます。 その場合閲覧する方が任意の大きさにウィンドウの縦サイズを変えても、「底辺合わせ」を保つにはどうしたら良いでしょうか? (ウィンドウに下部に文字が固定される感じです) 背景画像とかだとできるのですが文字も可能でしょうか? 現在タグは以下です。 . . . <BODY> <P align="right"><BR> <A href="***.html" target="1">1</A><BR> <A href="***.html" target="1">1</A><BR> <A href="***.html" target="1">1</A><BR> </P> </BODY> </HTML>

  • メールにリンクを張る

    下記のように書いて、うまく表示できません。 [メールアドレス] ***@***.com ←これをクリックしたらメーラーが起動してアドレス欄記入したいのですが、 http://***.com/***@***.com と表示します。 *以前はこれでちゃんと表示していたつもりなのですが。 どのようにしたら解決するでしょうか? よろしくお願いいたします。 Apache 1.3.37 PHP 4.4.4 MySQL 4.0.26 if ($col["email"] != "") { $body .= "<br>" . "[メールアドレス]"; $body .= "<br>" . "<A href='" .$col["email"] . "'>" . $col["email"] . "</A>" ; } else { $body .= "" ;

    • 締切済み
    • PHP
  • データの先頭文字の置換

    お世話になります。 AテーブルにBというフィールドがあります。 (Bはvarchar型で、先頭1文字は必ず大文字) このBすべてのデータの先頭1文字目を「○」という 文字に置き換えて更新するためのSQL文を教えていただけますでしょうか。 よろしくお願いいたします。

  • 表示と非表示

    下のような物があったときに、1を押したときに1が現れるのですが、続けて2を押したときに1と2が表示されてしまいます。 この時に、2を押したら、1を非表示にして2だけを表示したいのですが、可能でしょうか? よろしくお願い致します。 <HTML><HEAD><TITLE>test</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function apper(sLayers) { if (document.all) { if (document.all(sLayers).style.display=='inline') {  document.all(sLayers).style.display='none'; } else { document.all(sLayers).style.display='inline'; } } return (false); } // --> </SCRIPT> <style type="text/css"> span.hidden { position: relative; display: none } span.visiable { position: relative; display: inline } // --> </style></HEAD> <BODY> <a href="" onClick="return apper('1')">質問1</a><br> <a href="" onClick="return apper('2')">質問2</a><br> <a href="" onClick="return apper('3')">質問3</a><br> <span class="hidden" id="1">1<br></span> <span class="hidden" id="2">2<br></span> <span class="hidden" id="3">3<br></span> </BODY></HTML>

  • 表示/非表示の切り替え

    AAA、BBB、CCCの3つが縦に並んでいるとします。 ここで、あるボタンをクリックすると、BBBが消えるようにしたいです。 JavaScriptを使用して、以下のようなものを作ってみましたが、これだと、BBBが消えたスペースが空白として残ってしまいます。 スペースを残さずに、AAAとCCCを詰めて表示させたいのですが、何か方法はありますでしょうか? ====================================================================== <html> <body> <SCRIPT LANGUAGE='JavaScript'> <!-- function showLAYER(idName){ document.getElementById(idName).style.visibility = 'visible' } function hiddenLAYER(idName){ document.getElementById(idName).style.visibility = 'hidden' } //--> </SCRIPT> <A HREF="javascript:showLAYER('layer1')">[表示]</A> <A HREF="javascript:hiddenLAYER('layer1')">[非表示]</A> <br><br> AAA<br> <DIV ID = "layer1" > BBB </DIV> CCC<br> </body> </html> ======================================================================

  • 【短い】1つだけ展開/表示/非表示/開閉【Javascript】

    このスクリプト、もっと短くなりませんか? idがdisp0,disp20などdisp+数字になっているものを開閉するスクリプト。 動作:対象を開き他を閉じる、対象が開いていた場合対象を閉じる。 条件:連番(0から順番)じゃなくても(0,1,2,7みたいに飛んでも)動作する。 <html> <head> <title>1つだけ展開/表示/非表示/開閉</title> <script> //idがdisp+数字のものを格納 var kakunou = new Array(); window.onload=function(){ var tags=document.getElementsByTagName("*"); for(var i=0;i<tags.length;i++){ if(tags[i].id.match(/^disp[0-9]+$/)){ mituketa=tags[i].id.match(/^disp[0-9]+$/); kakunou.push(mituketa); } } } //開閉処理部分 function disp(tage) { for(i=0;i<kakunou.length;i++){ cb = document.getElementById(kakunou[i]).style; if(kakunou[i]==tage){ if (cb.display == 'none') cb.display = "block"; else cb.display = "none"; } else { cb.display = 'none'; } } } </script> </head> <body> <a href="javaScript:disp('disp1')">+</a>■検索サイト1<br> <div id="disp1" style="display:none"> ├<a href="http://www.yahoo.co.jp/">Yahoo!</a><br> ├<a href="http://www.goo.ne.jp/" >Goo</a><br> └<a href="http://www.lycos.co.jp/">Lycos</a><br> </div> <a href="javaScript:disp('disp200')">+</a>■検索サイト2<br> <div id="disp200" style="display:none"> ├<a href="http://www.infoseek.co.jp/">Infoseek</a><br> ├<a href="http://www.google.com/" >Google</a><br> └<a href="http://kids.goo.ne.jp/">Kids Goo</a><br> </div> <a href="javaScript:disp('disp30')">+</a>■検索サイト3<br> <div id="disp30" style="display:none"> ├<a href="http://www.excite.co.jp/">Excite</a><br> └<a href="http://www.msn.com/" >MSN</a><br> </div> </body> </html>

  • フィールドを別フィールド内で表示

    お世話になります。 当方Windows XP SP3,FileMakerPro9を使用しております。 初心者ゆえ、内容に不足等ありましたらご指摘ください。 早速質問ですが、 ・氏名 ・会社名 ・電話番号 上記フィールドに入力した文字列を、別フィールド ・ボディ に表示させ、かつコピー&ペーストができるようにしたいのですが、 方法をご存知の方、ご回答よろしくお願いいたします。メールテン プレートを作成するファイルを作りたいと考えております。

  • 階層ツリーの書き方

    現在このように書いたのですが、 +の下に不要な下線がひょうじされてしまいます。 それをなくし、ツリーが表示されたら、-が表示されてほしいのです。 + -でツリーを操作できるようにしたいです。 書き方、参照ページを教えてください。 よろしくお願いいたします。 <body bgcolor="white"> ■検索サイト<br> <a href="javaScript:exMenu('treeMenu1')">+</a>■検索サイト1<br> <div id="treeMenu1" style="display:none"> ├<a href="http://www.yahoo.co.jp/">Yahoo!</a><br> ├<a href="http://www.goo.ne.jp/" >Goo</a><br> ├<a href="http://www.lycos.co.jp/">Lycos</a><br> └<a href="javaScript:exMenu('treeMenu2')">+</a>■検索サイト2<br> <div id="treeMenu2" style="display:none">   ├<a href="http://www.infoseek.co.jp/">Infoseek</a><br>   ├<a href="http://www.google.com/" >Google</a><br>   └<a href="http://kids.goo.ne.jp/">Kids Goo</a><br> </div> </div> </body>

  • cssで作ったHP。左のメニューを選んだら右に表示したい。

    ホームページ作りの初心者です。左にあるメニューを選択したら、右のウィンドウ枠に表示されるようにしたいのですが、志向錯誤しても思うようになりません。 フレーム、という構造にしていれば、targetを使ってできるというのは分かったんですが、cssで作っています。これは別ものですよね? それも良く分からなくなっています。 私の下手な説明よりも見ていただく方がいいかと思いますので、例を載せさせてもらいます。やりたいことは、テスト1を押したら、test1.htmがcontents2に表示されるようにしたいのです。 ――――― <div id="wrapper">   <div id="header"></div>   <div id="inner">     <div id="contents1">       <a href="./test1.htm"> ●テスト</a><br><br>       <a href="./test2.htm"> ●テスト2</a><br><br>       <a href="./test3.htm"> ●テスト3</a><br>     </div>     <div id="contents2">        /*ここに表示したい*/     </div>   </div>   <div id="footer"></div>   </div> </div> ―――――――――――― よろしくお願いいたしますm(__)m

  • 別HTMLファイルを、レイヤーとして表示させたい

    2つのHTMLファイル「index.html」と「layer.html」があるとして、index.htmlにあるリンクをクリックすると、layer.htmlの内容がレイヤーとして、同一ウインドウに表示されるようにすることは可能でしょうか? layer.htmlには、PHPのスクリプトが入っていまして、そこで色々な処理をして、HTML部分を表示させたいのです。 [index.html] <html> <body> <a href="layer.html?id=hoge">登録する</a> </body> </html> [layer.html] <?php session_start(); $_SESSION['id'] = $_GET['id']; ?> <html> <body> <a href="">トップページに戻る</a> <a href="">閉じて作業を続ける</a> </body> </html> のような感じです。