在做了一些研究后,我听说要检索数组的最后一行,我可以使用end($arrayname)
但是当把它放到我的页面时,它不会检索最后一个,而是检索数组中的第一个。
$query2 = "SELECT * FROM Items";
$resultSet2 = mysql_query($query2);
while ($row2 = mysql_fetch_array($resultSet2, MYSQL_ASSOC))
{
$lastElement = end($row2);
echo $lastElement;
}
像这样循环遍历数组将循环并一个接一个地显示数组中的每一行: 玛瑙& Labradorite Necklace.jpgAgate Necklace.jpg Aventurine,Citrine和Carnelian Necklace.jpg
然而,我觉得它应该只是每次重复最后一项(Carnelian necklace.jpg)
$row2 = mysql_fetch_array($resultSet2, MYSQL_ASSOC);
$lastElement = end($row2);
echo $lastElement
这将打印数组中的第一项。是什么导致这种情况发生?
答案 0 :(得分:1)
为什么这么麻烦只需选择查询中的最后一行
SELECT * FROM Items order by primary_key desc limit 1
primary_key
是表格的主要名称
答案 1 :(得分:0)
尝试使用php中的array_pop函数
$row2 = mysql_fetch_array($resultSet2, MYSQL_ASSOC);
$lastElement = array_pop($row2);
echo $lastElement
答案 2 :(得分:0)
您正在将end
应用于$row2
,其中已经代表一行数据。这使得$lastElement
成为每行的最后一列(while
遍历行)。
获取N个项目是没有意义的,这样你就可以重复最后一个N次(另外:你的SQL查询没有指定排序顺序,所以哪个项目最后也是未知的给你)。如果你想做类似的事情,你可以使用LIMIT 1
获取一个项目,使用适当的查询获取数字N,最后只使用for
循环。
答案 3 :(得分:0)
你可以试试这个:
$query2 = "SELECT * FROM Items DESC limit 1";
$resultSet2 = mysql_query($query2);
while ($row2 = mysql_fetch_array($resultSet2, MYSQL_ASSOC))
{
echo $lastElement = $row2;
}