【发布时间】:2011-04-30 08:26:32
【问题描述】:
我有一个返回的获取行查询
10 9 8 7 6 5 4 3 2 1
但是,我只想返回最后一个值,在这种情况下为“1”。
我试图做echo row[0][9],但它不起作用。
我如何获得最后一个值?
【问题讨论】:
-
更不用说 SQL 语句了。 Questions 应该总是有 minimal sample code 以使它们更容易理解。
我有一个返回的获取行查询
10 9 8 7 6 5 4 3 2 1
但是,我只想返回最后一个值,在这种情况下为“1”。
我试图做echo row[0][9],但它不起作用。
我如何获得最后一个值?
【问题讨论】:
你可以使用end()函数
$row = array(10, 9, 8, 7);
echo end($row); // displays 7
【讨论】:
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo $row[0]; // 42
echo $row[1]; // the email value
?>
看看@这个例子。复制自here。通过查看上面的示例,您应该能够实现您想要的。
如果您知道列索引是什么,那么您就可以开始了。但是,如果您总是想要最后一列,请查看 mysql_num_fields 函数。
【讨论】:
试试echo explode(' ', $row[0])[9]
我已经有一段时间没有做 PHP 了,YMMV。
【讨论】:
您必须按 DESC 关键字对表格进行排序。
【讨论】:
我会在 MySQL 方面做这一切,所以你不要过多地在 PHP 和 MySQL 之间拆分逻辑(如果在这种情况下适用的话)并使用带有 LIMIT 1 和 ORDER BY DESC 的查询(或 ASC,取决于你的桌子)。
【讨论】:
您只想要添加到表中的最后 10 行吗?如果您按 id 降序排序,那将是列表中的第 10 个 id。如果那是您想要的,您也可以告诉 MySQL 准确地返回该行。查询变得有点复杂:
SELECT t1.*
FROM table t1
INNER JOIN (
SELECT id
FROM table
ORDER BY id DESC
LIMIT 10
) t2 ON t1.id = t2.id
ORDER BY t1.id ASC
LIMIT 1
【讨论】:
这是我的代码。
$query="SELECT blog_id FROM myblogs_view where blog_id<'$id' ORDER BY blog_id DESC LIMIT 10";
$result=mysql_query($query);
while($row=mysql_fetch_row($result) or die(mysql_error())) {
echo $row;
}
这会返回一行中的值。如何仅访问最后一行中的值?
【讨论】: