重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

現在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>

A 回答 (3件)

ページャを作りたいということですか?



回答になってないですが
私はサンプルで公開されていたスクリプトを使用しました。

結構便利ですよ。

参考URL:http://www.phppro.jp/news/311
    • good
    • 0

どうしてもうまくいかず、とは、具体的にどうなるのでしょうか?


また、

> $sql = "select count(*) as cnt from ○○ ". $where;

ここで最終的に組み立てたSQL文の内容は正しいでしょうか?
クエリーを実行する前に、print_rするなりして確かめてみてください。

この回答への補足

ご返答ありがとうございます。
どうしてもうまくいかないというのは、検索はできているのですが
十件表示などができない状況です。
もう一度スクリプトを確認してみます。
print_rはやっておりませんでした。ご指摘ありがとうございます!

補足日時:2007/04/27 15:30
    • good
    • 0

10件表示できないというのは、「次の10件」という部分?


それとも、データベースから10件取り出せないという意味ですか?
んーでもLIMIT使ってるようですし・・・??

この回答への補足

さっそくのご回答ありがとうございます。
次の10件表示、前の10件などを表示したくスクリプトを書いておりました。
正直のこのスクリプト自体本などを参照し、色々ためしていたので
自分で収集がつかなくなった次第です、、

補足日時:2007/04/27 15:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!