※ ChatGPTを利用し、要約された質問です(原文:PearDBでタイトル部分に検索結果を反映したい)
PearDBでタイトル部分に検索結果を反映したい
2011/08/02 23:02
このQ&Aのポイント
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>
質問の原文を閉じる
質問の原文を表示する
お礼
有難うございます。 WHEREで指定することにより無事表示出来ました。 大変ありがとうございました。