PHP数组中的数据库数据

时间:2011-05-02 12:20:34

标签: php arrays multidimensional-array

我在phpmyadmin中有一个表,用于存储'id'(自动公司),'标题'和'日期'。

我有一个网页,其中显示了10个最新项目(我只是按ID排序)。 在那个页面上,我打印标题和日期。我的愿望是也显示已发布项目的编号,因此第一个发布的项目是1,第二个是2,等等。我不能简单地从数据库中打印ID,因为如果我删除一行,则数字不是直的了。

我的想法是将所有数据放在一个数组中,但我不知道最好的方法是什么以及如何打印该项目编号。因此,例如当我想显示第54项时,我可以轻松打印$ items [54] [id]或其他内容,它会显示数字54并显示标题我打印$ items [54] [title]。< / p>

我不知道是否有更简单的方法,而且数组总是从0开始,但我的项目必须从1开始。

除了显示10个最新项目的页面外,还有另一个页面,它从URL中获取项目的标题。我如何能够在数组中搜索标题并以相同的方式显示数据,但仅针对所请求的标题?

提前致谢!

4 个答案:

答案 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