Php mysqli使用id设置下一个和上一个按钮
我想做一个“上一步”和“下一步”按钮,使用ID在数据库中滚动。这是我在使用mysql时的代码。现在它改成了mysqli,所以我不知道这段代码是否仍然有效,因为我一直在得到nullPhp mysqli使用id设置下一个和上一个按钮,php,mysqli,Php,Mysqli,我想做一个“上一步”和“下一步”按钮,使用ID在数据库中滚动。这是我在使用mysql时的代码。现在它改成了mysqli,所以我不知道这段代码是否仍然有效,因为我一直在得到null function getNavID($id) { $result4= mysqli_query("SELECT ( SELECT id FROM products_list WHERE id > '$id' LIMIT 1 ) AS nextValue, ( SELECT id
function getNavID($id) {
$result4= mysqli_query("SELECT
( SELECT id FROM products_list
WHERE id > '$id' LIMIT 1 ) AS nextValue,
( SELECT id FROM products_list
WHERE id < '$id' ORDER BY id DESC LIMIT 1 ) AS prevValue
FROM products_list
LIMIT 1");
if ($resultID = mysqli_fetch_array($result4)) {
return $resultID;
}
else {
return NULL;
}
}
$LinkID = getNavID($id);
if (!is_null($LinkID['prevValue']))
{
?>
<a href="update.php?id=<?php echo urlencode($LinkID['prevValue']); ?>" target="_top">Previous</a>
<?php
}
else if (!is_null($LinkID['nextValue']))
{
?>
<a href="update.php?id=<?php echo urlencode($LinkID['nextValue']); ?>" target="_top">Next</a>
<?php
}
else
{
echo "No Entries";
}
除了将mysql\u查询更改为mysqli\u查询之外,还有什么需要更改的吗?提前感谢您的帮助 试试这个:
global $pdo;
$id = $the_selected_id;
$stmt_a = $pdo->prepare("
(SELECT * FROM images WHERE id < ? ORDER BY id DESC LIMIT 1)
UNION (SELECT * FROM images WHERE id = (SELECT MAX(id) FROM images)) LIMIT 1");
$stmt_b = $pdo->prepare("
(SELECT * FROM images WHERE id > ? ORDER BY id ASC LIMIT 1)
UNION (SELECT * FROM images WHERE id = (SELECT MIN(id) FROM images)) LIMIT 1");
// $vars = array(':id' => $id);
$prev = $stmt_a->execute(array( (int)$id ));
$next = $stmt_b->execute(array( (int)$id ));
if ($stmt_a->rowCount() > 0) {
while($row = $stmt_a->fetch(PDO::FETCH_ASSOC)) {
echo '<a href="' . $row['prev_id'] . '">Previous</a>';
}
} else {
echo 'no previous';
}
if ($stmt_b->rowCount() > 0) {
while($row = $stmt_b->fetch(PDO::FETCH_ASSOC)) {
echo '<a href="' . $row['next_id'] . '">Next</a>';
}
} else {
echo 'no next';
在sentax之前输入数据库连接,如下所示:
<?
//enter your MySQL database host name, often it is not necessary to edit this line
$db_host = "localhost";
//enter your MySQL database username
$db_username = "your user name";
//enter your MySQL database password
$db_password = "your passwor";
//enter your MySQL database name
$db_name = "your db name";
//URL to the the site
$ScriptPath = "http://www.your-site.com/";
$db = mysqli_connect($db_host, $db_username, $db_password) or die("Error " . mysqli_error($db));
mysqli_select_db($db, $db_name) or die("Error " . mysqli_error($db));
function getNavID($id) {
$result4= mysqli_query($db, "SELECT
( SELECT id FROM products_list
WHERE id > '$id' LIMIT 1 ) AS nextValue,
( SELECT id FROM products_list
WHERE id < '$id' ORDER BY id DESC LIMIT 1 ) AS prevValue
FROM products_list
LIMIT 1");
if ($resultID = mysqli_fetch_array($db, $result4)) {
return $resultID;
}
else {
return NULL;
}
}
$LinkID = getNavID($id);
if (!is_null($LinkID['prevValue']))
{
?>
<a href="update.php?id=<?php echo urlencode($LinkID['prevValue']); ?>" target="_top">Previous</a>
<?php
}
else if (!is_null($LinkID['nextValue']))
{
?>
<a href="update.php?id=<?php echo urlencode($LinkID['nextValue']); ?>" target="_top">Next</a>
<?php
}
else
{
echo "No Entries";
}
?>
我不知道这段代码是否仍然有效。所以,去测试一下我已经测试过的itI,我说我一直在变为空,这就是为什么我在测试后在这里发布它。所以,你想让我们在你的代码中找到一个错误。不幸的是,这类问题在这里是离题的,我只是想知道为什么我总是得到空的结果。因为这段代码仍然有效,我从来没有改变过任何东西,只对mysqli做过修改。说真的,有时候我真的不知道这个地方是干什么用的。我不是一个当我遇到问题时会马上发帖的人,我会花至少一天的时间尽我最大的努力把它弄明白,除了在这里发帖之外别无选择。失望的是,我得到的只是这些无用的评论,而不是一些有意义的帮助。如果您不想帮忙,请不要评论,这将是非常感谢的。所以这次我不得不分成两个问题?不再将2合并为1?如果使用PDO,则可以使用:PDO::CURSOR_SCROLL,尝试查找有关此的文档。