我想知道如何根据其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]; ?>
答案 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'];
?>
答案 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'
)