PHP初心者のための外部関数を使用した文字列出力プログラムの書き方

このQ&Aのポイント
  • PHP初心者の方に向けて、外部関数を使用して文字列を返すプログラムの書き方を解説します。
  • ファイル `func1.php` では、引数を受け取り、それを使って文字列を作成し、返す関数 `func1` を定義します。
  • また、ファイル `func2.php` では、引数を使ってデータを取得し、文字列として結合し、返す関数 `func2` を定義します。
回答を見る
  • ベストアンサー

PHP初心者です。

PHP初心者です。 index.php から外部関数に飛び、文字列を返してきてindex.phpで それらの文字列を表示するプログラムはどのように書けばいいんでしょうか? /* ---func1.php--- */ function func1($aa,$bb){ $moji=""; $moji.= "ああ".$aa."ああ"; $moji.= "いい".$bb."いい"; //$mojiの内容を返す } /* ---func2.php--- */ function func2($cc,$dd){ // DBからデータを取得して $sql = "SELECT name, add, mail, tel FROM tbl_a WHERE cc = ".$cc; $moji_db = ""; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)){ $moji_db .= $row['name']; $moji_db .= $row['add']; $moji_db .= $row['mail']; $moji_db .= $row['tel']; } //$moji_dbを返す } index.php で $mojiと$moji_dbを出力する 以上のようなプログラムなんですけど、 func1,2の戻り値の書き方、index.phpでの受け取り方がわからないので教えてください。

  • PHP
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
回答No.1

こういう感じ /* ---func1.php--- */ function func1($aa,$bb){ // 文字の設定処理 (中略) return ($moji); } /* ---func2.php--- */ function func2($cc,$dd){ // 文字の設定処理 (中略) return ($moji_db); } /* ---index.php--- */ include_once('func1.php'): include_once('func2.php'): $get_moji = func1($aa, $bb); $get_moji_db = func2($cc, $dd);

age_03
質問者

お礼

早速の回答ありがとうございます。 無事表示することができました。 これを応用したものでわからないところが出てきましたので改めて質問します。 お時間がございましたらまたよろしくお願いします。

関連するQ&A

  • index.php から外部関数に飛び、文字列を返してきてindex.

    index.php から外部関数に飛び、文字列を返してきてindex.phpで XML形式で表示するプログラムはどのように書けばいいんでしょうか? /* ---func1.php--- */ function func1($aa,$bb){ $xml_code = "<func1>\n"; $xml_code .= "<aaa>".$aaa."</aaa>\n"; $xml_code .= "<bbb>".$bbb."</bbb>\n"; $xml_code .= "</func1>\n"; return ($xml_code); } /* ---func2.php--- */ function func2($cc,$dd){ //DBからデータを取得して $sql = "SELECT ccc, ddd, eee, tel FROM tbl_a WHERE id = ".$id; $moji_db = ""; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)){ $xml_code = "<func2>\n"; $xml_code .= "<ccc>".$row['ccc']."</ccc>\n"; $xml_code .= "<ddd>".$row['ddd']."</ddd>\n"; $xml_code .= "<eee>".$row['eee']."</eee>\n"; $xml_code .= "</func2>\n"; } return ($xml_code); } index.php で 両方の$xml_codeを出力する 以上のようなプログラムなんですけど、 index.phpでのxmlでの表示の仕方がわかりません。 /* ---index.php--- */ <?php // require func1.phpとfunc2.php function xml_make(&$xml ){ // DB 接続 // XML Header生成 echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"."\n"; echo func1(); echo func2(); // XML Footer生成 // DB 切断 } ?> としてindex.phpを実行するとIEで以下のエラーが出ます。 (firefoxではでません。両ブラウザ共、ソースを表示するとXML形式にはなっていますが・・) 「XML ページを表示できません XSL スタイル シートを使用した XML 入力は表示できません。 エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。 -------------------------------------------------------------------------------- XML ドキュメント内では最上位の要素に限り、使用できます。 」 それと文字列($xml_code)をSimpleXMLで処理するにはどうしたらいいのでしょう?

    • ベストアンサー
    • PHP
  • PHP+MySQLを実行するとエラーが出てパソコンがフリーズする。

    次のphpを実行すると、求めるデータは表示出来ますが、その下に引き続き Warnning:mysql_result()[function.mysql_result]: Unable to jump to row 7 on MySQL result index 3 in C:****test.php on line 10; 同文で on line 11; 以下,Unable to jump toの 「 row 7」 が row 8 row 9・・・・・・ と延々と続き、パソコンがフリーズしてしまいます。 実行したphp文。 <?php $con=mysql_connect(localhost,"root","root"); $selectdb=mysql_select_db("sales",$con); $sql="select * from sample"; $result=mysql_query($sql,$con); $row=mysql_fetch_array($result); $price=mysql_result($result,$i,1); $volume=mysql_result($result,$i,2); echo("$price:$volume<br>\n"); mysql_close($con); ?> 参考書を調べて、いろいろ変えてみましたが、分かりません。 幼稚なphp文で恐縮ですが、悪いところをご指摘頂ければ有難いです。

    • ベストアンサー
    • PHP
  • 関数(list)の戻り値を他の関数(base)の引数に渡したいんですが

    関数(list)の戻り値を他の関数(base)の引数に渡したいんですが、どうすればいいでしょうか? /****list.php****/ <?php function list($id){ // DB接続 open(); $sql = "SELECT * FROM table WHERE id = $id"; $result = mysql_query($sql); // 実行結果判定 if(!$result){ $res = 9; }else{ while ($row = mysql_fetch_assoc($result)){ $moji .= $row['name']; $moji .= $row['mail']; } echo $moji; $res = 0; } return $res; } ?> /****main.php****/ <?php ・ ・ list($id); ・ ↓$err_cdにlistの戻り値を入れ、$err_msgには戻り値が0なら「正常終了」,9なら「SQLエラー」などを入れるようにしたい。 base($err_cd,$err_msg); ・ ?>

    • ベストアンサー
    • PHP
  • document.titleというものがありますが、titleタグに付

    document.titleというものがありますが、titleタグに付ける名前を定義できると思うのですけど、 metaのkeywordsを定義するものはあるのでしょうか。 以下のようなtitleを付ける為の仕組みがあります。 そのscript箇所に、 document.title = "<!--{$title_text}-->" + "|" + document.title; と同じような仕組みで、keywordsを定義する事はできませんでしょうか? どなたかご教示いただけると幸いです。 <!--{php}--> $db_connect = false; $sql_category = "SELECT category_id,category_name,parent_category_id FROM dtb_category WHERE category_id = "; $db = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD); //mysql_query("SET NAMES utf8"); if(mysql_select_db(DB_NAME, $db)) $db_connect = true; $title_text = ''; if ($db_connect) { $sql = $sql_category.$_GET['category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_temp = $row['category_name']; while ($row['parent_category_id'] != 0) { $sql = $sql_category.$row['parent_category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_text = $row['category_name']; } if ($title_text != '') $title_text = $title_text." | ".$title_temp; else $title_text = $title_temp; } $this->assign("title_text", $title_text); <!--{/php}--> <script type="text/javascript"> //<![CDATA[ function setEventListener(el, evt, func) { if (el.addEventListener) el.addEventListener(evt, func, false); else el.attachEvent("on"+evt, func); } function html_load() { document.title = "<!--{$title_text}-->" + "|" + document.title; } setEventListener(window, 'load', html_load); //]]> </script>

  • PHP MySQLでエラーがでてしまいます。

    PHP MySQLからデータを取得したいのですが、以下のエラーが出てしまい原因が分かりません。 詳しい方お願い致します。 <b>Warning</b>: json_encode() expects exactly 1 parameter, 2 given in <b>/home/users/2/***.**-********/web/****************/php/seupPharmacyData.php</b> on line <b>21</b><br /> エラーが出るコードは以下になります。 <?php include "db.php"; $sql = "SELECT * FROM user_data"; $query = mysql_query($sql, $db) or die("クエリの送信に失敗しました。<br />SQL:".$sql); $result= array(); while ($row = mysql_fetch_object($query)) { $result[] = array( 'name1' => $row->name1, 'name2' => $row->name2, 'name3' => $row->name3, 'id' => $row->id, ); } //jsonとして出力 header('Content-type:application/json; charset=UTF-8'); echo json_encode($result,JSON_UNESCAPED_UNICODE); ?>

    • ベストアンサー
    • PHP
  • 以前、こちらの質問サイトで質問した際に回答を頂いた内容で、

    以前、こちらの質問サイトで質問した際に回答を頂いた内容で、 Smartyの .tpl ファイルなどに、<?php?>。。。<?/php?>を書き、Javascriptで表示させるというやり方がありました。 回答は別の所から、案を頂き、 function html_load(){ document.title = "<!--{$title_text}-->" + "|" + document.title;   keyword_write($keyword); } を function html_load(){ document.title = "<!--{$title_text}-->" + "|" + document.title;   keyword_write("<!--{$keyword}-->"); } としました。 以下、全文。 <!--{php}--> $db_connect = false; $sql_category = "SELECT category_id,category_name,parent_category_id FROM dtb_category WHERE category_id = "; $db = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD); //mysql_query("SET NAMES utf8"); if(mysql_select_db(DB_NAME, $db)) $db_connect = true; $title_text = ''; $keyword = '';  //←追記 if ($db_connect){ $sql = $sql_category.$_GET['category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_temp = $row['category_name']; while ($row['parent_category_id'] != 0){ $sql = $sql_category.$row['parent_category_id']; $result = mysql_query($sql); $row = mysql_fetch_assoc($result); mysql_free_result($result); $title_text = $row['category_name']; } if ($title_text != '') $title_text = $title_text." | ".$title_temp; else $title_text = $title_temp; } $this->assign("title_text", $title_text); $this->assign("keyword", $title_text);  //←追記 <!--{/php}--> <script type="text/javascript"> //<![CDATA[ function setEventListener(el, evt, func){ if (el.addEventListener) el.addEventListener(evt, func, false); else el.attachEvent("on"+evt, func); } function html_load(){ document.title = "<!--{$title_text}-->" + "|" + document.title;   keyword_write("<!--{$keyword}-->"); } function keyword_write(keyword){  var meta=document.getElementsByTagName("meta");  for(var i=0;i<meta.length;i++){  if(meta[i].name=="keywords")   meta[i].setAttribute("content",meta[i].getAttribute("keyword")+","+keyword);  } } setEventListener(window, 'load', html_load); //]]> </script> そこで、EC-CUBEの環境で、setAttribute、getAttributeが使えないので、 他の方法を教えていただきたく

  • PHPについて。

    PHPで占いを作っているのですが、ランダム表示にするにはどうすればいいですか。 <html> <head> <title>入力フォーム</title> </head> <body> <center> <?php //接続 $link = mysql_connect("○○○","○○○","○○○"); if(!$link){ die('Connected error !'.mysql_error()); } //DB選択 $db_selected = mysql_select_db('○○', $link); if(!$db_selected){ die('Connected error !'.mysql_error()); } //フォーム入力文字を表現 $○○= $_POST['name']; /* echo $○○.'<br>'; */ //ハッシュ値の取得 $hash = crc32($○○); if($hash < 0){ $hash = 0 - $hash; } /* echo $hash; */ $result = mysql_query("SELECT ○○") or die("sql error !"); $retukazu = mysql_num_rows($result); $kekka = $hash % $retukazu + 1; //文字コード設定 mysql_query("SET NAMES sjis"); $sql = mysql_query("SELECT ○○ = $kekka"); if(!$sql){ die('query_error !'.mysql_error()); } while($row = mysql_fetch_assoc($sql)){ echo '<center><br />あなたはきっと・・・<br /><br /><font color= "Red"><strong>'.$row['Memo'].'</strong></font>です<br />'; } ?> </p> </body> </html>

    • ベストアンサー
    • PHP
  • PHPでMySQLテーブルロック一覧取得

    PHPでMySQLテーブルロックされている一覧を取得したいですがどのようにすれば良いかご教授願います。 Web検索で調べるとロック状態はmysql_list_processesや、show processlistでも試してみましたが、思うような結果は得られませんでした。正常には動作していますが、欲しいデータが取り出せないですす。。。 単純に、現在ロックしているテーブル名(レコードロックは不要です。)を一覧で出力させることはできないのでしょうか? PHPから実施できるやり方をご教授頂けると幸いです。 -------Test Program()--------- <?php $link = mysql_connect('localhost', 'login_id', 'login_pass'); mysql_select_db('db_name'); mysql_query('LOCK TABLES table1 WRITE'); mysql_query('INSERT INTO table1 SET field1 = "test", field2 = "1"'); //$result = mysql_list_processes($link); 以下のSQL文とも入れ替えて試しました。 $result = mysql_query('show processlist'); while ($row = mysql_fetch_assoc($result)){ printf("%s %s %s %s %s %s %s %s\n", $row["Id"], $row["User"], $row["Host"], $row["db"], $row["Command"], $row["Time"] , $row["State"], $row["Info"]); } mysql_free_result($result); mysql_query('UNLOCK TABLES'); ?>

    • ベストアンサー
    • MySQL
  • MYSQL→PHP→10件表示

    現在phpを勉強しているのですがどうしても分からないことがあり、 質問をさせて頂きました。 PHPとMYSQLを使い、プルダウンメニューから検索した結果を 10件表示をしていきたいのですが、どうしてもうまくいかず混乱しております。 どのなたかご存知の方、お伺いしても宜しいでしょうか? $PAGESIZE = 10; //ここにmysqlに接続するスクリプト extract($_REQUEST); if (!isset($page)) { $page = 1; } if(!empty($fld)) { //$fldに検索したい住所が入ってます。 $local = addslashes($fld); $where .= "add1 = '$fld' && "; } if(!empty($where)) { $where = substr($where, 0, -3); $where = "WHERE " . $where; } $sql = "select count(*) as cnt from ○○ ". $where; $rst = mysql_query($sql); $row = mysql_fetch_array($rst); $tcnt = $row["cnt"]; mysql_free_result($rst); $totalpage = ceil($tcnt / $PAGESIZE); $pagehead = "<B>$tcnt 件みつかりました。 " . "[" . ($PAGESIZE * ($page - 1) + 1) . "-"; if ($page < $totalpage) { $pagehead .= ($PAGESIZE * $page) . "] を表示</B>"; } else { $pagehead .= "$tcnt] を表示</B>"; } $sql = "select * from ○○ ". $where. " order by renban desc limit " . $PAGESIZE * ($page - 1) . ", $PAGESIZE"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>登録データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["renban"]; echo " "; echo $row["tourokubi"]; echo "<br />"; echo $row["people"]; echo " "; echo $row["add1"]; echo $row["add2"]; echo "-"; echo $row["sta"]; echo " "; echo $row["tel"]; echo $row["url"]; echo $row["sejitu"]; echo $row["pr"]; echo "</p><hr />"; } } ?> <?= $pagehead ?> <?php mysql_free_result($result); mysql_close; $param_local = rawurlencode($local); if ($page > 1) { $body .= "<A href = '$PHP_SELF?page=" . ($page - 1) . "&tcnt=$tcnt&local=". $param_local. $param_category. "'>" . "前の $PAGESIZE 件</A>"; } if ($totalpage > 1 and $page < $totalpage) { $body .= "<A href = '$PHP_SELF?page=" . ($page + 1) . "&tcnt=$tcnt&local=". $param_local. $param_category. "'>" . "次の $PAGESIZE 件</A>"; } ?> <?= $body ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPでMySQLのデータを検索したい

    お世話になります。 PHPでMySQLのデータを検索したいと思い、 以下のようにしてみたのですがうまく表示されません。 -- $name = $_POST["name"]; $link = mysql_connect('localhost', '', ''); $db_selected = mysql_select_db('', $link); mysql_set_charset('utf8'); $sql = "SELECT * FROM search WHERE". $name; $result = mysql_query($sql); while($row = mysql_fetch_array($name)) { print $row['name']; } $close_flag = mysql_close($link); -- どう改善すればいいのでしょうか? 初心者の為、少々お見苦しい点があるかと思いますが どうぞよろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう