タイトルと複数項目を適切に表示するには?

このQ&Aのポイント
  • ユーザーが指定した市町村にあるホテル一覧を表示するために、MySQLとPearDBを使用してコンテンツを作成しています。
  • ヘッダータイトルには指定した市町村名を表示し、本文には指定した市町村にあるホテルの情報を全て表示します。
  • しかし、ホテル名が全ての情報に含まれてしまい、タイトルも重複して表示されてしまいます。どのように修正すれば良いでしょうか?
回答を見る
  • ベストアンサー

タイトルと複数項目を適切に表示するには?

MySQL + PearDBでコンテンツを作っています。 テーブルのカラムは「ID、都道府県名、都道府県ID、市町村名、市町村ID、会社名」です。 完成イメージは下記です。 ●ユーザーは市町村IDをGETする。 ●市町村名がヘッダーのタイトルに掲載される。 ●指定した市町村にあるホテル一覧が表示される そこで作ったのが下のソースです。 ヘッダーでは、GETされた任意のp_noに基づき、抽出されたcity_nameを1つだけ表示する。 本文では、GETされた任意のp_noに基づき、抽出された社名、住所、telなどを全て表示する 【テスト結果】 やりたいことは、ヘッダータイトルは1回のみ抽出、ホテルは全て抽出なのに、ホテル名全てにタイトルまで付いてきます。 【表示希望】 <title>千代田区のホテル</title>   ●●ホテル   105-0004   東京都千代田区●●町1-3-4   03-1234-5678   ●Xホテル   105-0005   東京都千代田区●X町1-4-4   03-1234-5679   ●△ホテル   105-0005   東京都千代田区●△町1-4-4   03-1234-5679 【表示結果】 <title>千代田区のホテル</title>   ●●ホテル   105-0004   東京都千代田区●●町1-3-4   03-1234-5678   千代田区のホテル【←これはタイトル文字であり出てきてほしくない】   ●Xホテル   105-0005   東京都千代田区●X町1-4-4   03-1234-5679   千代田区のホテル【←これはタイトル文字であり出てきてほしくない】   ●△ホテル   105-0005   東京都千代田区●△町1-4-4   03-1234-5679 ホテルを1件抽出するごとに、ヘッダータイトル部分の $rs=$db->limitQuery("SELECT * FROM reform_co where p_no = '" .addslashes($_GET['p_no'])."ORDER BY city_name ASC",1,1); まで戻り、タイトル名を再度1回取得し、再記入を続けているようです。 【質問】 ●市町村名をタイトルに記載する部分は1回だけの表示。 ●市町村IDで検索した時に指定した市町村にあるホテルについては全て抽出 するためには、どうすればいいか教えてください。 【ソース】****************************************** <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <?PHP // サーバー情報接続 require_once '../../config_n_reform.php'; require_once '/usr/share/pear/DB.php'; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } print('接続に成功しました<br>'); $db->query('SET NAMES UTF8'); if (PEAR::isError($db)) { die($db->getMessage()); } //////GET URL表示 if(isset($_GET['p_no'])){ $sql = "select * from reform_co where p_no = '" .addslashes($_GET['p_no'])."'"; } $res =& $db->query($sql); if (PEAR::isError($res)) { die($res->getMessage()); } //////タイトル表示 print<<<EOF <title> EOF; $rs=$db->limitQuery("SELECT * FROM reform_co where p_no = '" .addslashes($_GET['p_no'])."ORDER BY city_name ASC",1,1); while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { print($row['city_name']); print<<<EOF のホテル </title> </head> <body> EOF; //////ホテル名表示 print($row['company'].'<br>'); print($row['zip'].'<br>'); print($row['address'].'<br>'); print($row['tel'].'<br>'); } $db->disconnect(); ?> </body> </html> ****************************************************

  • MySQL
  • 回答数1
  • ありがとう数1

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

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

いろいろやり方はあると思いますが、ひとまず下記のように行を$iでカウントするようにして、1件目のときだけcity_nameを表示するのが簡単ではないでしょうか? $i = 0; while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { if ($i == 0) { print($row['city_name']); print<<<EOF のホテル </title> </head> <body> EOF; } $i++; //////ホテル名表示 print($row['company'].'<br>'); print($row['zip'].'<br>'); print($row['address'].'<br>'); print($row['tel'].'<br>'); }

tajix14
質問者

お礼

有難うございます。 やりたかったことが出来ました。 ソースもすっきりしました。 助かりました。 深く御礼申し上げます。

関連するQ&A

  • PearDBで項目を1回だけ適切に表示するには?

    何度もお問い合わせし申し訳ありません。本日2度目の問い合わせです。 MySQL + PearDBでコンテンツを作っています。 テーブルのカラムは「ID、都道府県名(pre_name)、都道府県ID(pre_no)、市町村名(p_name)、市町村ID(p_no)、会社名(company).....」です。 完成イメージは下記です。 ●ユーザーは都道府県IDをGETする。 ●都道府県名がヘッダーのタイトルに掲載される。 ●指定した都道府県下の市町村の一覧が表示される ●その一覧にあるリンクをクリックすると、市町村内のホテル一覧に飛ぶ そこで作ったのが下のソースです。 ヘッダーでは、GETされた任意のpre_noに基づき、抽出されたpre_nameを1つだけ表示する。 本文では、GETされた任意のpre_noに基づき、抽出された市町村名を1回だけ表示する(その市町村名にはリンクが張られており市町村ごとのホテルページへ飛ぶことが可能) 【結果】 【ソース1】の場合 市町村名へのリンクが、登録会社の数だけ出現! (表示数を指定しないためここまでは当たり前です) ここから、繰り返しさえ制御できれば完成のはずです。 ここで対策としてfetchOneを使おうとしたのですが、fetchOneはMDBからの機能のようでpearDBでは使えません。 ということで、【ソース2】の表示数を指定することにしました。 $rs=$db->limitQuery("SELECT * FROM reform_co where pre_no = '" .addslashes($_GET['pre_no'])." ORDER BY p_no ASC",1,1); しかし今回の使用用途では何故か Parse error: syntax error, unexpected $end in になります。 どなたか、私の間違いをご指摘いただけますでしょうか? ************************************************************ 【ソース1】(市町村名がホテルの数だけ出現) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <?PHP // サーバー情報接続 require_once '../../config_n_reform.php'; require_once '/usr/share/pear/DB.php'; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } print('接続に成功しました<br>'); $db->query('SET NAMES UTF8'); if (PEAR::isError($db)) { die($db->getMessage()); } //////GET URL表示 if(isset($_GET['pre_no'])){ $sql = "select * from reform_co where pre_no = '" .addslashes($_GET['pre_no'])."'"; } $res =& $db->query($sql); if (PEAR::isError($res)) { die($res->getMessage()); } //////タイトル表示 print<<<EOF <title> EOF; $i = 0; while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { if ($i == 0) { print($row['p_name']); print<<<EOF のホテルのご紹介 </title> </head> <body> EOF; } $i++; //////ホテル名1回のみ表示 $rs=$db->limitQuery("SELECT * FROM reform_co where pre_no = '" .addslashes($_GET['pre_no'])." ORDER BY p_name ASC",1,1); while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { print($row['pre_no']); //市町村へのリンク ここは機能しています //print '<a href="http://hoge.com/index1.php?p_no='; //print($row['p_no'].''); //print '">'; //print($row['p_name'].'<br>'); //print "</a><br><br>"; } $db->disconnect(); ?> </body> </html> **************************************************** **************************************************** 【ソース2】 繰り返しを制御したはずなのですが、エラー <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <?PHP // サーバー情報接続 require_once '../../config_n_reform.php'; require_once '/usr/share/pear/DB.php'; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } print('接続に成功しました<br>'); $db->query('SET NAMES UTF8'); if (PEAR::isError($db)) { die($db->getMessage()); } //////GET URL表示 if(isset($_GET['pre_no'])){ $sql = "select * from reform_co where pre_no = '" .addslashes($_GET['pre_no'])."'"; } $res =& $db->query($sql); if (PEAR::isError($res)) { die($res->getMessage()); } //////タイトル表示 print<<<EOF <title> EOF; $i = 0; while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { if ($i == 0) { print($row['p_name']); print<<<EOF のホテルのご紹介 </title> </head> <body> EOF; } $i++; //////ホテル名表示 $rs=$db->limitQuery("SELECT * FROM reform_co where pre_no = '" .addslashes($_GET['pre_no'])." ORDER BY p_name ASC",1,1); while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { //市町村へのリンク print '<a href="http://hoge.com/index1.php?p_no='; print($row['p_no'].''); print '">'; print($row['p_name'].'<br>'); print "</a><br><br>"; } $db->disconnect(); ?> </body> </html> ********************************************************

  • PearDBでタイトル部分に検索結果を反映したい

    PearDBでコンテンツを作っています。 テーブルのカラムは「ID、都道府県名、都道府県ID、市町村名、市町村ID、会社名」です。 まず、市町村IDで検索した時に指定した市町村にある会社一覧が表示されるように作りました。ここまでは問題ありません。 次に、SEO対策として、市町村名がタイトルに掲載されるようにしたいと考えました。 例  千代田区の検索をした場合、内容は千代田区のホテル一覧が表示され、タグのタイトル部分は 「<title>千代田区のホテル</title>」としたい。 そこで作ったのが下のソースです。 テスト結果 千代田区のIDで検索すると、千代田区のホテルの一覧表は出てくるのですが、タイトルはあきるの市になってしまいます。 あきる野市は、全国の市町村名でソートした場合、一番上に表示される市町村です。 「選択した市町村結果の中から、一番上の文字(検索結果の100件の千代田区の中から、一番上の千代田区を拾ってくる」と記載したかったのですが、「選択した2万件のテーブルの中から一番上の文字(あきる野市)を拾ってくる」になってしまったようです。 問題となるソースは下記です。ASCを外しても結果は変わりませんでした。 【タイトル部分のソース】        →検索地域の如何に関わらず、「あきるの市」が拾われ表示される。 print<<<EOF <title> EOF; $rs=$db->limitQuery("SELECT * FROM reform_co ORDER BY city_name ASC",1,1); while ($row =& $rs->fetchRow(DB_FETCHMODE_ASSOC)) { print($row['city_name']); } print<<<EOF のホテル </title> 【ホテル一覧表示のソース】       →検索地域通りに、千代田区のホテル一覧100件が表示される。 $res =& $db->query($sql); if (PEAR::isError($res)) { die($res->getMessage()); } while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { print($row['pre_name'].'<br>'); print($row['city_name'].'<br>'); print($row['company'].'<br>'); print($row['zip'].'<br>'); print($row['address'].'<br>'); print($row['tel'].'<br>'); print($row['fax'].'<br>'); print($row['free_dial'].'<br>'); print($row['gyousyu'].'<br>'); } 質問です。 タイトル部分について、検索地域の一番上の文字(千代田区100件の中の一番上の文字=千代田区)」を拾ってくるようにしたいです。 どなたか修正箇所をご指摘頂けませんでしょうか? 宜しくお願い致します。 【全ソース】 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <?PHP // サーバー情報接続 require_once '../../config_n_reform.php'; require_once '/usr/share/pear/DB.php'; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } print('接続に成功しました<br>'); $db->query('SET NAMES UTF8'); if (PEAR::isError($db)) { die($db->getMessage()); } $res =& $db->query($sql); if (PEAR::isError($res)) { die($res->getMessage()); } //タイトル表示 print<<<EOF <title> EOF; $rs=$db->limitQuery("SELECT * FROM reform_co ORDER BY city_name ASC",1,1); while ($row =& $rs->fetchRow(DB_FETCHMODE_ASSOC)) { print($row['city_name']); } print<<<EOF のホテル </title> </head> <body> EOF; while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { print($row['pre_name'].'<br>'); print($row['city_name'].'<br>'); print($row['company'].'<br>'); print($row['zip'].'<br>'); print($row['address'].'<br>'); print($row['tel'].'<br>'); print($row['fax'].'<br>'); print($row['free_dial'].'<br>'); print($row['gyousyu'].'<br>'); } $db->disconnect(); ?> PHPおわり </body> </html>

    • ベストアンサー
    • MySQL
  • Pear + MySQLで検索サイトの作り方

    Pear + MySQLで検索サイトを作っています。 テーブル名 city_code カラム id pre_no pre_code city_no city_name shop tel (ID、都道府県コード、都道府県名、市町村コード、市町村名、店名、TEL) PHP作成は最小限に、URLのリンクで多数の種類の表示が出来るように考えています。 http://hoge.jp/search.php?pre_no=13 東京都の飲食店の表示 http://hoge.jp/search.php?pre_no=14 神奈川県の飲食店の表示 http://hoge.jp/search.php?city_no=13001 千代田区の飲食店の表示 http://hoge.jp/search.php?city_no=14001 横浜市の飲食店の表示 のような感じです。 下記の試作品search.phpでは、全国の全ての登録飲食店を表示してしまいます。 (データベース接続はできています) これをURLでhttp://hoge.jp/search.php?pre_no=13のようにすることにより、検索地域を特定したいのです。(あくまで例: URLで振り分け指定出来ればこの形ではなくても可) データベースサーバーの使用用途の基本中の基本だと思うのですが、素人なものでこんなことで躓いています。何故かWEBにも落ちていません。Pearの本も購入したのですが記載されていません。 どなたかご教授頂けませんでしょうか? 宜しくお願い致します。 ************** search.php ************** <?PHP //config.phpのサーバー基本情報を読みに行く require_once '../../config.php'; require_once '/usr/share/pear/DB.php'; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } print('接続に成功しました<br>'); $db->query('SET NAMES ujis'); if (PEAR::isError($db)) { die($db->getMessage()); } $sql = 'select * from city_code'; $res =& $db->query($sql); if (PEAR::isError($res)) { die($res->getMessage()); } while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) { print($row['pre_name'].'<br>'); print($row['city_name'].'<br>'); print($row['shop'].'<br>'); print($row['tel'].'<br>'); } $db->disconnect(); ?>

    • ベストアンサー
    • MySQL
  • 画像表示の際空っぽの項目を非表示にするには、、

    画像を含んだ検索システムについてご相談があります。 画像の部分で、データが空っぽの場合検索結果の更に詳細ページにて非表示にする条件分岐についてつまづいています。 レコードに画像データがある場合は検索結果にて表示し、データが空っぽの場合は非表示にするというものです。 以下に詳細ページ(検索結果一覧から詳細ページに進んだページ)の該当箇所のコードを記載します。 if文を使うのだろうというのはわかるのですが、どう書いていいかわからないでいます。 アドバイスいただけないでしょうか? よろしくお願いします。 ~省略~ <?php $debug = false; //DB Connect $url = "***********"; $user = "**********"; $pass = "********"; $db = "********"; $link = mysql_connect($url,$user,$pass) or die("No Connected"); $sdb = mysql_select_db($db,$link) or die("No Selected"); if($debug) echo_r($_POST); mysql_set_charset('utf8'); if($_SERVER["REQUEST_METHOD"] != "POST") { echo "Error: invalid method"; exit(); } $id = $_POST['key']; $query = "SELECT * FROM shops where id='$id'"; $result = mysql_query($query) or die($query . '<br />' . mysql_error() . '<hr />'); $num_rows = mysql_num_rows($result); ?> <div class="row "> <div id="contents" class="clearfix"> <div class="span8"> <h2 class="f2"><b>■店舗詳細</b></h2> <?php while($row = mysql_fetch_assoc($result)): ?> <div class="row-fluid result-table" style="background-color:white;"> <div class="row-fluid"> <?php echo '<img src="get_image1.php?id=' . $row['id'] . '" style="width:100%;">'; ?> </div> <div class="span4 mini-img"style="margin-left:-1px;"><p class="thumb"><a><?php echo '<img src="get_image2.php?id=' . $row['id'] . '" >' ?></a></p> </div> <div class="span4 mini-img"style="margin-left:-1px;"><p class="thumb"><a ><?php echo '<img src="get_image3.php?id=' . $row['id'] . '" >' ?></a></p> </div> <div class="span4 mini-img"style="margin-left:-1px;"><p class="thumb"><a ><?php echo '<img src="get_image4.php?id=' . $row['id'] . '" >' ?></a></p> </div> <div class="span4 mini-img"style="margin-left:-1px;"><p class="thumb"><a ><?php echo '<img src="get_image5.php?id=' . $row['id'] . '" >' ?></a></p> </div> <div class="span4 mini-img"style="margin-left:-1px;"><p class="thumb"><a ><?php echo '<img src="get_image6.php?id=' . $row['id'] . '" >' ?></a></p> </div> <div class="span4 mini-img"style="margin-left:-1px;"><p class="thumb"><a ><?php echo '<img src="get_image7.php?id=' . $row['id'] . '" >' ?></a></p> </div> ~以下省略~

    • ベストアンサー
    • PHP
  • sqlite3の動作が?xamppでは問題なく

    sqlite3の動作が?xamppでは問題なく作動しますが、ロリポップサーバーではFatal errorがでます。ご教授お願い致します。 <?php $db = new SQLite3('fukurou.db'); try { $db = new SQLite3('fukurou.db'); } catch (Exception $e) { print 'DBへの接続でエラーが発生しました。<br>'; print $e->getTraceAsString(); } $results = $db->query('SELECT * FROM syouhin'); while ($row = $results->fetchArray()) { print $row['no']; print $row['name']; print $row['kakaku']; print '<br>'; } $db = new SQLite3('fukurou.db'); $db->close();

  • 売上表示のプログラムをしたいのですが。

    ショッピングカートのcart_buy.phpの中で精算ボタンを押したら精算完了したのちuriage.phpで自動的に売上が入力されるというプログラムを作りたいのですが例えばAさんが購入したときにパソコンとプリンターを購入したとしたらパソコンは反映されますがプリンターは反映されず同じ購入者が複数の売上表示が行なえないのです。どうしたらうまくいくでしょうか。アドバイスお願いします。 uriage.php <?php require_once 'DB.php'; $dsn = "mysql://user:password@localhost/sampledb2"; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } $sql = 'select * from syohin_uriage'; $res =& $db->query($sql); while ($row =& $res->fetchRow(DB_FETCHMODE_OBJECT)){ print "<tr><td><center>$row->id</center></td>"; print "<td><center>$row->name</center></td>"; print "<td><center>$row->tanka</center></td>"; print "<td><center>$row->num</center></td>"; print "<td><center>$row->ss</center></td></tr>"; } $db->disconnect(); ?>

    • 締切済み
    • PHP
  • phpの日本語が□(四角)に文字化けします。

    PHPでテキストファイルの検索結果をソートして出力するスクリプトで文字化けが出て困って います。 テキストファイル------------------ 20101225|第二会議室|1200|1300|就職面接 20101225|第一会議室|1300|1400|打ち合わせ 20101225|第一会議室|1500|1600|テスト 20101225|第一会議室|0900|1000|会議 20101225|第一会議室|1200|1300|休憩 20101224|第一会議室|1200|1500|クリスマス会 スクリプト(抜粋)--------------------- //$_GET["year"]) = 2010; //$_GET["title"]) = "第一会議室"; //$_GET["month"] = 12; //$_GET["day"] = 25; foreach ($schedule_list as $lineno => $line) { list($schedule_date, $title, $str_time, $end_time, $body) = explode("|", $line); if ($schedule_date == date("Ymd", mktime(0, 0, 0, $_GET["month"], $_GET["day"], $_GET["year"])) && $title == $_GET["title"]) { //抽出結果を配列に格納 $data[] = array( 'sch_date'=>$schedule_date ,'title'=>"$title", 'str'=>$str_time, 'end'=>$end_time, 'body'=>"$body", 'no'=>$lineno); } } //開始時間(昇順)でソート //array_multisort($str, SORT_ASC, $end, $sch_date, $title, $body, $no, $data); foreach ($data as $key => $row) { $sch_date[$key] = $row['sch_date']; $title[$key] = $row['title']; $str[$key] = $row['str']; $end[$key] = $row['end']; $body[$key] = $row['body']; $no[$key] = $row['no']; } 表示結果(1)---------------------  print_r($data);  配列データの全体を表示すると、日本語も正しく表示されます。 Array ( [0] => Array ( [sch_date] => 20101225 [title] => 第一会議室 [str] => 1300 [end] => 1400 [body] => 打ち合わせ [no] => 1 ) 表示結果(2)---------------------  print_r($sch_date[0]); print_r($title[0]); print_r($str[0]); print_r($end[0]); print_r($body[0]); print_r($no[0]);  配列データの要素を指定して出力すると日本語が□になります。  20101225�13001400�1 以上、どなたかご教授下さい。 日付   会議室 開始時間 終了時間 使用者 20101225 �     1300    1400   �

    • ベストアンサー
    • PHP
  • PHP データベースの情報を表示するとエラー発生

    こんにちは。PHP初心者で本を見ながら作成しているのですがわからないのでご教授よろしくお願い致します。 環境 OS:VISTA    XAMPP    PEAR使用 データベースに登録したデータを表示させようとしているのですが以下のエラーが表示されてしまいます。 ------------------------------------------------------------------ Fatal error: Call to undefined method DB_Error::fetchRow() in C:\xampp\htdocs\jun1.php on line 19 ------------------------------------------------------------------ コード ------------------------------------------------------------------ <?php //PEARのDBライブラリを読み込む require_once("DB.php"); // データベースとの接続情報を記述 $dsn = "mysql://dbuser:test@localhost/データベース名"; //データベースへ接続 $db = DB::connect($dsn); if (DB::isError($db)) { print "ConnectError!"; exit; } $sql ="SELECT * FLOM anq_t"; $res = $db->query($sql); (19行目)while(is_array($row = $res->fetchRow(DB_FETCHMODE_ASSOC))){ print"<tr><td>" . $row["anq_id"] . "</td>"; print"<td>" . $row["name"] . "</td>"; print"<td>" . $row["nicnane"] . "</td>"; print"<td>" . $row["sex"] . "</td>"; print"<td>" . $row["age"] . "</td>"; print"<td>" . $row["university"] . "</td>"; print"<td>" . $row["region"] . "</td>"; print"<td>" . $row["adress"] . "</td>"; print"<td>" . $row["tel"] . "</td>"; print"<td>" . $row["mail"] . "</td>"; print"<td>" . $row["birthday"] . "</td>"; print"<td>" . $row["hobby"] . "</td>"; print"<td>" . $row["comment"] . "</td>"; print"<td>" . $row["del_flag"] . "</td>"; print"<td>" . $row["create_datetime"] . "</td></tr>"; } ?> まったくの初心者なのでわかるかたいましたらよろしくお願い致します。

    • ベストアンサー
    • PHP
  • 「PHP+MYSQLバージョンからの抽出結果をPHPファイルに表示できません」の質問になります。

    すぐに回答を! お世話になっております。 プログラミング初心者のiinnffooと申します。 またまた御助言頂きたく質問に至りました。 質問に入ります。 現在、TPLファイルを呼び出すPHPファイルを使ってMYSQLから会員さんへ送信したメールリストを最新順にDBから抽出したいと思っております。 補足になります。 今回TPLファイルを呼び出すPHPファイルを使っている理由はセッション等のソースが付いているのでそのまま使用しております。 (これが理由かもしれません、TPLのためのソースが抽出を邪魔しているかもです。) 今回の抽出結果を表示するファイルはPHPファイルになりTPLは使用しません。 現在 FATAL eorror RecordCount() が出ているのでソース間違いだと思うんです。 <?PHP //////////////////バックナンバー取得////////////////// $rs=$DB->query("SELECT * FROM ".$k_mail_timer." where sendtime <'$time' ORDER BY num DESC LIMIT 0,20"); $TOTAL=$result->RecordCount(); while($row =$result->FetchRow(DB_FETCHMODE_ASSOC)) ?> <TABLE> <TR><?PHP {$b_num[] = $row[0];} ?> </TR> <TR><?PHP {$row[1] = mb_convert_encoding($row[1],"SJIS","EUC-JP");} ?></TR> <TR><?PHP {$title[] = $row[1];} ?> </TR> <?PHP $smarty->assign("TOTAL",$TOTAL); $smarty->assign("title",$title); $smarty->assign("b_num",$b_num); if($_GET['k_outnum']<>"") { $b_num = $_GET['k_outnum']; ?> <?PHP //指定のデータを取得 $result = $DB->query("SELECT * FROM d_mail_timer where num='$b_num'"); while($row =$result->FetchRow(DB_FETCHMODE_ASSOC)) ?> <TABLE> <TR><?PHP {print_r($row["b_num"]);} ?> </TR> <TR><?PHP {print_r($row["title"]);} ?></TR> <TR><?PHP {print_r($row["msg"]);} ?> </TR> <TR><?PHP {$row[2] = mb_convert_encoding($row[2],"SJIS","EUC-JP");} ?> </TR> <TR><?PHP {$msg = $row[2];} ?></TR> <TR><?PHP {$url = $row[3];} ?> </TR> <?PHP ////■はサイトURLになります。 preg_match_all("/http:..■■■■■■.click_out.php.k_outnum=[0-9]+\&....sid=sid_fuyo/",$msg,$ms); foreach($ms[0] as $messe) { } preg_match_all("/k_outnum=[0-9]+/",$messe,$kid); foreach($kid[0] as $ki) { $ki = str_replace("k_outnum=","",$ki); trim($ki); } $url = $DB->getone("SELECT link_url_e FROM $k_koukoku_table where id='$ki'"); $msg = str_replace($messe,"",$msg); $smarty->assign("title",$title); $smarty->assign("msg",$msg); $smarty->assign("url",$url); }?> </TABLE> たぶん必要ないソースが結構あると思うんですけど・・・ 助けてくださいませんか(☆_☆)

    • 締切済み
    • PHP
  • Arrayってなんですか?

    自分は素人でPEARを使った抽出方法とその結果の整列方法を、システム開発者に聞きましたが、やってもまったくうまくいきません。 <? $test = $DB->getAll(&quot;SELECT nicname,point FROM &quot;.$k_user_table.&quot; order by point DESC LIMIT 0,3 &quot;); print_r($test); ?> 結局こちらで教えていただいた抽出部分の $test = $DB->getAll("SELECT nicname,point FROM ".$k_user_table." order by point DESC LIMIT 0,10 "); は出たのですが、改行もなくArray等と言う訳の分からない文字がやたら出て、かなり血圧が上がります。 $test = $DB->getAll("SELECT nicname,point FROM ".$k_user_table." order by point DESC LIMIT 0,10 "); で抽出した物を、 while($row =$test->FetchRow()) {  print $row[0]; print $row[1];  print &quot;<hr>&quot;; } の様な形で整列させるためにはどうしたらよいですか? 現在まで出来てるのは、 <? $test = $DB->getAll(&quot;SELECT nicname,point FROM &quot;.$k_user_table.&quot; order by point DESC LIMIT 0,3 &quot;); print_r($test); while($row =$test->FetchRow()) {  print $row[0]; print $row[1];  print &quot;<hr>&quot;; } ?> です。 と言うか、これで出るとシステム側から言われてますが、エラーばっかり出やがります。 パソコンの中に手を突っ込んでガリガリ揃えてやりたい気分ですね。 短気な私はそろそろやばいです。

    • ベストアンサー
    • MySQL