为什么不修改SQL语句只选择一个项目?
mysql_query("SELECT * FROM articles WHERE topic = 'IT' LIMIT 1");
但是,你的代码中的错误是,你正在循环所有选定的记录,覆盖每次通过你的变量。如果你想存储的所有行作为一个数组,你应该修改你的语法是这样的:
while($article= mysql_fetch_array($articleQuery)){
$aid[] = $article['id'];
$media[] = $article['media'];
$link[] = $article['link'];
}
...之后,你可以用aid[0]
访问的第一行。
而是我想提出一个不同的结构:
while($article= mysql_fetch_array($articleQuery)){
$articles[]['aid'] = $article['id'];
$articles[]['media'] = $article['media'];
$articles[]['link'] = $article['link'];
}
,做什么,是所有的数据收集到一个单一的数据结构,其中每个记录保存所有相关的文章中的数据。你会访问它是这样的:如果这看起来像希伯莱你
echo $articles[0]['aid'];
echo $articles[0]['media'];
echo $articles[0]['link'];
,看看在PHP manual section for arrays。
你只想要1个数组?还是你想要一个方法中的第一个数组,你可以访问它,以及其他数据? – trueheart78 2010-06-22 18:16:31
$ aid正在覆盖循环的每一次迭代。 在您的最后一行中,您正在数组上下文中使用文章ID,它是一个字符串。这会给你上一篇文章ID号的第一个字符。所以,如果你上一篇文章的ID为12345,你的echo会打印出'1'; – racerror 2010-06-22 18:25:59