0

この関数を使用してデータベースから値を接続して表示しています

function display_content($the_id)
{
$result = mysql_query("SELECT * FROM tbl_ADBTAG WHERE bcv = $the_id");
    while($row = mysql_fetch_array($result))
    {
        echo $row['content'];
    }
//mysql_close($con);
}

db接続を閉じると、次と前に移動できないと思われるため、 mysql_close行にコメントしました。私はphpとmysqlに慣れていないので、間違っている場合は訂正してください。

私は実際にmysqliを使おうとしています。他の投稿で誰かが非推奨だと言ったのですが、mysqliを使用するとコードが混乱するので、今のところmysqlを使用してプロジェクトを終了し、mysqliのドキュメントを確認する機会があればmysqliに移動します。 。

ここで問題に戻ります。上記の関数は、フォーム送信ボタンを介して呼び出されます。私は実際に3つのボタンを持っています。行く、前へ、次へ。[移動]ボタンは、コンテンツをOKにする送信ボタンとして機能します。

私の目的は、前へと次へのボタンを使用して、データベースの現在の行から前と次を移動できるようにすることです。

それを行う方法はありますか?

そして最後に、どこでmysql_close()関数を適切に呼び出す必要がありますか?

ありがとう

4

4 に答える 4

0

制限を使用してページネーションを作成します。

mysql> select * from actor limit 0,5;
+----------+------------+--------------+---------------------+
| actor_id | first_name | last_name    | last_update         |
+----------+------------+--------------+---------------------+
|        1 | PENELOPE   | GUINESS      | 2006-02-15 04:34:33 |
|        2 | NICK       | WAHLBERG     | 2006-02-15 04:34:33 |
|        3 | ED         | CHASE        | 2006-02-15 04:34:33 |
|        4 | JENNIFER   | DAVIS        | 2006-02-15 04:34:33 |
|        5 | JOHNNY     | LOLLOBRIGIDA | 2006-02-15 04:34:33 |
+----------+------------+--------------+---------------------+
5 rows in set (0.00 sec)
mysql> select * from actor limit 5,5;
+----------+------------+-----------+---------------------+
| actor_id | first_name | last_name | last_update         |
+----------+------------+-----------+---------------------+
|        6 | BETTE      | NICHOLSON | 2006-02-15 04:34:33 |
|        7 | GRACE      | MOSTEL    | 2006-02-15 04:34:33 |
|        8 | MATTHEW    | JOHANSSON | 2006-02-15 04:34:33 |
|        9 | JOE        | SWANK     | 2006-02-15 04:34:33 |
|       10 | CHRISTIAN  | GABLE     | 2006-02-15 04:34:33 |
+----------+------------+-----------+---------------------+
5 rows in set (0.00 sec)

mysql> select * from actor limit 10,5;
+----------+------------+-----------+---------------------+
| actor_id | first_name | last_name | last_update         |
+----------+------------+-----------+---------------------+
|       11 | ZERO       | CAGE      | 2006-02-15 04:34:33 |
|       12 | KARL       | BERRY     | 2006-02-15 04:34:33 |
|       13 | UMA        | WOOD      | 2006-02-15 04:34:33 |
|       14 | VIVIEN     | BERGEN    | 2006-02-15 04:34:33 |
|       15 | CUBA       | OLIVIER   | 2006-02-15 04:34:33 |
+----------+------------+-----------+---------------------+
5 rows in set (0.00 sec)

ここで、limitの最初の値は開始で、2番目の値は結果の数です。コードでは、「開始」番号の代わりにページ番号を指定する必要があります。

例2:

mysql> select * from bank;
+------+--------+------+
| id   | amount | bank |
+------+--------+------+
|    1 | 100000 |    1 |
|    2 | 256415 |    2 |
|    3 | 142535 |    1 |
|    1 | 214561 |    2 |
|    2 | 123456 |    1 |
|    1 | 987654 |    2 |
+------+--------+------+
6 rows in set (0.00 sec)

mysql> select * from bank limit 0,2;
+------+--------+------+
| id   | amount | bank |
+------+--------+------+
|    1 | 100000 |    1 |
|    2 | 256415 |    2 |
+------+--------+------+
2 rows in set (0.00 sec)

mysql> select * from bank limit 2,2;
+------+--------+------+
| id   | amount | bank |
+------+--------+------+
|    3 | 142535 |    1 |
|    1 | 214561 |    2 |
+------+--------+------+
2 rows in set (0.00 sec)

mysql> select * from bank limit 4,2;
+------+--------+------+
| id   | amount | bank |
+------+--------+------+
|    2 | 123456 |    1 |
|    1 | 987654 |    2 |
+------+--------+------+
2 rows in set (0.00 sec)
于 2012-06-13T12:21:20.073 に答える
0

固定リストを前後に移動する場合は、$result変数をセッションに移動し、それを使用して移動できます。

ただし、これをクリックしたときにライブデータが必要な場合は機能しません/

于 2012-06-13T11:16:41.463 に答える
0

あなたが望むのは、データベーステーブルからコンテンツ(レコード)を改ページすることです。
その場合、最善の方法は、SQL の start および limit 構造をそのように使用することです。

SELECT * FROM tablename WHERE .... LIMIT start_index, number_of_items
WHERE the values are described as below:
    start_index: The value from which to pull the records. The first record is 0
    number_of_items: The maximum number of records to SELECT. e.g. 10 (Note: Phpmyadmin uses 30)

NEXTこれを知っていると、またはPREVIOUSページ をプルする方法を知るために、現在使用中の開始インデックスを追跡する必要があります。

Example:
Lets assume that we want our start index variable name to be xs, we could code like so:
$start = (isset($_GET["xs"]) and intval($_GET["xs"]) >= 0)? intval($_GET["xs"]):0;
//the first time on the page -- set the default start index
$_SESSION["start_index"] = $start;
//save it anyhow you want to keep track of the current start index
$sql = "SELECT ..... LIMIT $start,25";
..... //stuff to pull your content

リンクの代わりに<a></a>タグを使用した方がよい場合があることに注意してください。 また、このページネーションを処理する小さなスクリプトをgithubで入手できます。ドキュメンテーション wikiを チェックして ください。buttonsNEXTPREVIOUS


于 2012-06-13T11:29:57.133 に答える
0

mysql_close() を呼び出す必要はありません。今のところ php が行うからです。この場合、スクリプトを呼び出すたびに mysql-connection が作成されるため、これを行うことができます。

この場合、DB 内の前のエントリと次のエントリの ID を読み取り、次のボタンと前のボタンのパスをこの ID に設定する必要があります。

于 2012-06-13T11:17:09.293 に答える