入力したキーワードを含む mysql データベースから文を一覧表示しようとしています。quoteme.html
以下に、送信フォームを含むfrom と呼ばれる php スクリプトを示します。キーワードを使用して送信するとquoteme.html
、最初のページのみが表示されます。「次の 10 レコード」をクリックすると、空のページが表示されます (「次の 10 レコード」リンクのみが表示されます)。次のようなクエリ行にキーワードを入力すると:
$sql = "SELECT * FROM `text` WHERE MATCH(body) AGAINST('freak' IN BOOLEAN MODE)LIMIT $offset, $rec_limit";
それはうまく機能し、すべてのリンクの文をリストします
編集:
その間
$sql = "SELECT * FROM `text` WHERE MATCH(body) AGAINST('$q' IN BOOLEAN MODE)LIMIT $offset, $rec_limit";
最初のページでのみ機能します。
freak
とはどう違い$q
ますか?$q = $_GET['q'];
次のページで値をリセットするのはなぜ ですか?
EDIT2:
エラーをデバッグしようとしましたが、クエリ行の後に以下のコードを php スクリプトに配置しました。
echo '<pre>';
var_dump($_GET);
var_dump($offset);
var_dump($rec_limit);
echo '</pre>';
$_GET
変数は最初のページの後に消え、$offset
変数$rec_limit
は問題ありません。
$_GET
では、次のページで最後に
するにはどうすればよいでしょうか?
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('quotes');
/* Get total number of records */
$q = $_GET['q'];
$sql = "SELECT count(*) FROM text ";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
$row = mysql_fetch_array($retval, MYSQL_NUM );
$rec_count = $row[0];
if( isset($_GET{'page'} ) )
{
$page = $_GET{'page'} + 1;
$offset = $rec_limit * $page ;
}
else
{
$page = 0;
$offset = 0;
}
$left_rec = $rec_count - ($page * $rec_limit);
$sql = "SELECT * FROM `text` WHERE MATCH(body) AGAINST('$q' IN BOOLEAN MODE)LIMIT $offset, $rec_limit";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "SENTENCE :{$row['body']} <br> ".
"--------------------------------<br>";
}
if( $page > 0 )
{
$last = $page - 2;
echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a> |";
echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>";
}
else if( $page == 0 )
{
echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>";
}
else if( $left_rec < $rec_limit )
{
$last = $page - 2;
echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a>";
}
mysql_close($conn);
?>
私のコードの何が問題なのか誰か教えてくれませんか? ありがとう。