在做了一些研究之后,我听说要检索数组上的最后一行,我可以使用end($arrayname)
但是,当将它放入我的页面时,它不会检索最后一个,而是检索数组中的第一个。
$query2 = "SELECT * FROM Items";
$resultSet2 = mysql_query($query2);
while ($row2 = mysql_fetch_array($resultSet2, MYSQL_ASSOC))
{
$lastElement = end($row2);
echo $lastElement;
}像这样循环遍历数组将依次遍历和显示数组中的每一行:玛瑙&拉布拉多岩Necklace.jpgAgate Necklace.jpgAventurine、塞特林和卡内勒Necklace.jpg。
然而,我的印象是,它应该简单地重复最后一项(卡尼利亚necklace.jpg)每次
$row2 = mysql_fetch_array($resultSet2, MYSQL_ASSOC);
$lastElement = end($row2);
echo $lastElement这将打印数组中的第一项。有什么原因导致这种情况发生吗?
发布于 2014-04-15 08:32:55
您正在将end应用于$row2,它已经代表了一行数据。这使得$lastElement成为每一行的最后一列( while遍历行)。
获取N个项目是没有意义的,这样您就可以重复其中的最后一个项目N次(另外: SQL查询没有指定排序顺序,所以您也不知道最后一个项目是什么)。如果您想这样做,可以使用LIMIT 1和数字N获取一个条目,使用适当的查询,最后只需使用for循环即可。
发布于 2014-04-15 08:32:45
为什么要做这么多麻烦,只需选择查询中的最后一行
SELECT * FROM Items order by primary_key desc limit 1 primary_key是表的列名,它是主键。
发布于 2014-04-15 08:32:09
在php中尝试使用array_pop函数
$row2 = mysql_fetch_array($resultSet2, MYSQL_ASSOC);
$lastElement = array_pop($row2);
echo $lastElementhttps://stackoverflow.com/questions/23078361
复制相似问题