我在phpmyadmin中有一个表,用于存储'id'(自动公司),'标题'和'日期'。
我有一个网页,其中显示了10个最新项目(我只是按ID排序)。 在那个页面上,我打印标题和日期。我的愿望是也显示已发布项目的编号,因此第一个发布的项目是1,第二个是2,等等。我不能简单地从数据库中打印ID,因为如果我删除一行,则数字不是直的了。
我的想法是将所有数据放在一个数组中,但我不知道最好的方法是什么以及如何打印该项目编号。因此,例如当我想显示第54项时,我可以轻松打印$ items [54] [id]或其他内容,它会显示数字54并显示标题我打印$ items [54] [title]。< / p>
我不知道是否有更简单的方法,而且数组总是从0开始,但我的项目必须从1开始。
除了显示10个最新项目的页面外,还有另一个页面,它从URL中获取项目的标题。我如何能够在数组中搜索标题并以相同的方式显示数据,但仅针对所请求的标题?
提前致谢!
答案 0 :(得分:1)
"SELECT COUNT(id) as cnt FROM mytable";
您可以选择所有数据库条目的计数。
然后将其分配给迭代器
$i = $row['cnt']; // this will hold the ammount of records e.g. 21
// other query
while($row = mysql_fetch_assoc($result)) {
echo $i;
$i--; // this will decrement on every iteration 21, 20 , 19, and so on.
}
答案 1 :(得分:1)
首先关闭。我会在数据库中添加一个时间戳字段,然后按顺序排列,因为它感觉整体更可靠,并为您提供额外的详细信息,以后可能会很方便。
要创建多维数组,我会做类似的事情:
$result = mysql_query(...);
$items = array();
while($item = mysql_fetch_assoc($result)) {
$items[] = $item;
}
现在$ items [12]会给你第13项(因为它是0索引的)。
最后,要仅选择具有特定标题的项目,我将使用包含WHERE子句的查询,例如
"SELECT ... FROM ... WHERE title = '".$title."'"
在查询中使用它之前清理此变量非常重要非常。
您可以在很多地方阅读有关MySQL的更多信息。一个快速的谷歌搜索给了我这个:http://www.tutorialspoint.com/mysql/index.htm
答案 2 :(得分:1)
在开始用PHP编程之前,你应该学习PHP;)阅读并完成PHP手册和一些教程!
至于你的问题,这是一个你想做的简单循环。这样做的一种方式。
以您喜欢的任何方式从数据库中获取最后10个项目,遵循一些代码,部分是伪代码。
$markup = '';
for ($i=1; $i<=count($items); $i++)
{
$markup .= 'Item ' . $i . ': ' . $items['date'] . ' - ' . $items['title'];
$markup .= '<a href="/path/to/postpage/id/' . $items['id'] . '">read more</a>';
$markup .= PHP_EOL;
}
echo $markup;
答案 3 :(得分:0)
我不知道你是如何准确打印出你的数据的,但我认为那里有一个循环。只需设置一个计数器,每行增加1并打印其值。
对于标题搜索,您必须运行另一个WHERE title = '$title'
条件的查询,但请注意SQL injection。