-2

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 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_query を mysqli_query に変更する以外に、変更する必要があるものはありますか? 助けてくれてありがとう!

4

2 に答える 2

-1

これを試して :

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';
于 2013-11-11T10:28:48.897 に答える