pearのpagerに関しまして
pearのpagerを使用してページングの機能を追加しようとしたのですが、
次のような警告がでて、データの出力がされません。
Notice: Undefined variable: res3 in /var/www/html/***.php on line 215
Warning: pg_fetch_result(): supplied argument is not a valid PostgreSQL result resource in /var/www/html/***.php on line 215
for文でsqlを回す際に、適切に変数が入っていないようなのですが、
原因がわかりません。
どなたか分かる方、教えていただけますでしょうか。
よろしくお願いいたします。
#SQLを実行する
$res3 = pg_query($dbcon, "SELECT status, city, address, line, station, bus, walk, rent, floor_space, parking, remark
FROM estates
LEFT OUTER JOIN cities USING (city_id)
LEFT OUTER JOIN stations USING (station_id)
LEFT OUTER JOIN lines USING (line_id)
WHERE prefecture_id = '{$prefecture_id}'
and status = '{$status}'
and floor_space >= '{$floor_space_lower}'
and floor_space <= '{$floor_space_upper}'
and rent >= '{$rent_lower}'
and rent <= '{$rent_upper}'
and parking >= '{$parking_lower}'
and parking <= '{$parking_upper}'
ORDER BY station_id");
#失敗したとき、どんなSQLが失敗したかをエラーとして出力する
if (! $res3) {
trigger_error("query fail: ". $sql3);
exit;
}
if (pg_num_rows($res3) == 0) {
echo("<tr align = \"center\"><td colspan=\"11\"><br><b>現在、該当する情報はありません。</b><br></td></tr>");
} else {
require_once("Pager/Pager.php");
function showPage($start,$cnt){
#SQL実行結果の行数だけ繰り返し
for ($i = $start; $i < $start+$cnt; $i++) {
#SQL実行結果を取り出して、HTML用にエスケープ処理をする
$status = pg_fetch_result($res3, $i, 'status');
$city = pg_fetch_result($res3, $i, 'city');
$address = pg_fetch_result($res3, $i, 'address');
$line = pg_fetch_result($res3, $i, 'line');
$station = pg_fetch_result($res3, $i, 'station');
$bus = pg_fetch_result($res3, $i, 'bus');
$walk = pg_fetch_result($res3, $i, 'walk');
$rent = pg_fetch_result($res3, $i, 'rent')/10000;
$floor_space = pg_fetch_result($res3, $i, 'floor_space');
$acreage = pg_fetch_result($res3, $i, 'floor_space')*0.3025;
$rent_per_acreage = pg_fetch_result($res3, $i, 'rent')*0.00033/pg_fetch_result($res3, $i, 'floor_space');
$parking = pg_fetch_result($res3, $i, 'parking');
$remark = pg_fetch_result($res3, $i, 'remark');
#取り出したデータを出力する
echo("<tr align = \"center\">
<td nowrap>{$status}</td>
<td nowrap>{$city}<br>{$address}</td>
<td nowrap>{$line}<br>{$station}</td>
<td nowrap>{$bus}分<br>{$walk}分</td>
<td nowrap>{$rent}万円</td>
<td nowrap>{$floor_space}m2<br>{$acreage}坪</td>
<td nowrap>{$rent_per_acreage}万円</td>
<td nowrap></td>
<td nowrap>{$parking}台</td>
<td nowrap>{$remark}</td>
</tr>");
}
}
$perPage=15;
$params=array(
"perPage"=>$perPage, "tatalItems"=>pg_num_rows($res3),
"firstPagePre"=>"{", "firstPageText"=>"先頭", "firstPagePost"=>"}",
"lastPagePre"=>"{", "lastPageText"=>"先頭", "lastPagePost"=>"}");
$o_page=Pager::factory($params);
$navi=$o_page->getLinks();
showPage(($o_page->getCurrentPageID()-1)*$perPage,$perPage);
print($navi['all']);
}
お礼
ありがとうございました。 DB/html/phtml・・・全部、UTF-8に統一したら、正常に検索できました。 本当に助かりました。 ただ、今後、文字コードがどのように落ち着くか、ちょっと気になります。