Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何基于按钮单击移动下一个和上一个_Php_Mysql_Button - Fatal编程技术网

Php 如何基于按钮单击移动下一个和上一个

Php 如何基于按钮单击移动下一个和上一个,php,mysql,button,Php,Mysql,Button,我正在使用此函数连接和显示数据库中的值 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); } 我评论了mysql\u

我正在使用此函数连接和显示数据库中的值

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);
}
我评论了mysql\u close行,因为我认为如果我关闭数据库连接,我将无法移动下一个和上一个。如果我错了,请纠正我,因为我是php和mysql新手

我实际上是在尝试使用mysqli,因为在我的另一篇文章中,有人说它不推荐使用,但当我使用mysqli时,我的代码变得乱七八糟,所以现在我想使用mysql完成我的项目,并在有机会查看mysqli文档时转到mysqli

现在回到问题上来,上面的函数是通过表单提交按钮调用的。我实际上有3个按钮。上一个,下一个。Go按钮充当submit按钮,使内容正常

我现在的目标是能够使用prev和next按钮从数据库的当前行移动previous和next

知道怎么做吗

最后,我应该在哪里正确调用mysql_close()函数


谢谢

如果您希望固定列表在会话中前后移动,您可以将
$result
变量移动到会话中,并使用该变量在会话中移动


但是,如果您希望在点击时获得实时数据,则不需要调用mysql\u close(),因为php现在可以这样做。在这种情况下可以这样做,因为每次调用脚本时都会创建mysql连接


在这种情况下,您需要读取数据库中上一个和下一个条目的ID,并将下一个和上一个按钮的路径设置为此ID。

因为您需要的是对数据库表中的内容(记录)进行分页。
那么最好的方法就是使用SQL开始和限制结构,就像这样

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)
知道了这一点,您必须跟踪当前使用的开始索引,以便知道如何拉入
下一个
上一个
页面

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
请注意,您最好使用

查看

希望这能帮助您使用limit进行分页:

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:

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)

实际上,我已经准备好使用
id-1
来回移动id。我不知道如何从上一个按钮和下一个按钮调用它。@charlesween为什么你不能这样做<代码>我可以在点击按钮时使用myscript.php,但仍然可以在主页上获得结果吗?只需说,你的主页是index.php,你可以将按钮的链接设置为index.php?id=。单击后,您将切换到带有此参数的主页面,然后获取条目的id。my where子句始终=到1。这意味着它只捕获一行,这是当前的。如果我要用你要求的方法。我需要限制5月30日的逆流,30日的逆流。从代码的外观来看,它假定我的结果大于1,并且限制为25。即使我从where子句中只得到1个结果,这是否有效?谢谢,我该投什么钱来下一步和上一步呢?我看了你的剧本,但我似乎不懂。你能告诉我哪个部分可以制作上一个和下一个链接吗。我一次只需要显示一行。意思是每页1行。谢谢,这不会影响我的成绩吗?对不起,我忘了提。我的表包含31300多行。我使用where子句只获取特定行并使其更快。但是,我的where子句非常具体,因为我只需要在每页显示一行。我正在查看与我的where子句匹配的当前记录的偏移量。如果你能确认它不会减慢我的成绩,因为我有31300+罗文,我会尝试它。感谢“limit”总是返回快速查询,您可以尝试,记住使用“where”条件和“order by”让我们假设我成功地使用limit查询。如何从一行导航到另一行。我总是需要在我的页面上一次显示1行。Thanks@CharlesWayne您必须将该值传递给查询,如果按钮是next,变量是$actual+5(5是next 5 result),如果单击prev按钮,变量将是$actual-5,因此查询将收到该值以进行下一次搜索结果我的问题是这一点。在我上面的代码中,$u id不是一个连续的数字。它实际上是诗句id(bcv意味着书的章节诗句)。实际表id的字段仅为“id”。用户正在搜索韵文,这就是变量$the_id中的feed。如果我在当前是everybook的最后一个韵文时使用next($the_id+1)。下一个命令不起作用。当用户仍在搜索$the_id时,我是否有办法将'id'作为参数?谢谢