如何根据mysql中的id检索行的特定数据?

时间:2015-09-17 23:13:21

标签: php sql database

我想知道如何根据其ID来检索行的标题。

它用于基于下一个和上一个按钮的href链接。 ID将由

确定
  

当前ID-1 =上一个ID($ pid)和当前ID + 1 =下一个ID($ nid)

我有$nid$pid,但现在我想在数据库中获取相应ID的标题。现在我只获得了网址中显示的当前ID标题..

href="features/headlines/<?php echo $pid; ?>/<?php echo $title; ?>"

我希望$title显示与$pid对应的标题,但现在我只获得当前ID的标题。

我尝试了<?php echo $pid[title]; ?>

2 个答案:

答案 0 :(得分:0)

这会产生以下影响:

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$current_id = 6; // Whatever your current ID is here..

// Notice the subtraction from $current_id
$query = "SELECT `title` FROM `table` WHERE `id` = '".($current_id-1)."'";
// Would output:
// SELECT `title` FROM `table` WHERE `id` = '5'

$result = $mysqli->query($query);
$row = $result->fetch_assoc();

$previous_title = $row['title'];

?>

请参阅: http://php.net/manual/en/mysqli-result.fetch-assoc.php

答案 1 :(得分:0)

您正在尝试使用规范化的数据库架构。这很好! (除非你在谈论PHP中的一些抽象数据类型)

如果我理解正确,您的列上需要一种特殊的“键”,特别是属性为AUTO_INCREMENT的主键

How to make MySQL table primary key auto increment with some prefix

MySQL可以使用简单的O(logn)索引在BTREE时间内根据其ID来解决任何选择。 Primary keys是基本上是每行的唯一表示的键(在这种情况下,id是标题的表示)。你会做这样的查询:

SELECT id, title from table_1 WHERE id = '$id_to_select'

要解析返回结果,您有一系列选择: mysqli_fetch_row mysqli_fetch_array() mysqli_fetch_assoc

我认为最好的是mysqli_fetch_array,因为您可以指定如何获取返回的行:MYSQLI_NUM表示索引,MYSQLI_ASSOC表示关联返回。

$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
print_r($row);
//Array(
    'id' => 1,
    'title' => 'lorem ipsum'
)