我有以下代码,想要手动选择一个数组:
<?php
$articleQuery = mysql_query("SELECT * FROM articles WHERE topic = 'IT' ");
while($article= mysql_fetch_array($articleQuery )){
$aid = $article['id'];
$media = $article['media'];
$link = $article['link'];
}
echo $aid[0];
?>
问题在于它并没有真正选择/显示正确的信息。我想要的是能够选择第一个数组的值。
提前致谢。
答案 0 :(得分:1)
$firstrow = null;
while($article= mysql_fetch_array($articleQuery)) {
if ($firstrow === null)
$firstrow = $article;
$aid = $article['id'];
$media = $article['media'];
$link = $article['link'];
//manipulate $aid, $media and $link.
}
//manipulate $firstrow
如果您只需要第一行,请将查询限制为一个结果并最多执行一次mysql_fetch_array
,而不是循环。
答案 1 :(得分:1)
或者你可以这样做:
$array = array();
while($article = mysql_fetch_object($articleQuery )){
$array[] = $article;
}
echo $array[0]->id; // get first id
echo $array[0]->media; // get first media
echo $array[0]->link; // get first link
echo $array[1]->id; // get second id
echo $array[1]->media; // get second media
echo $array[1]->link; // get second link
// and so on.......
答案 2 :(得分:0)
如果你想让$ aid成为一个数组,你应该这样做:
$aid = array();
while($article= mysql_fetch_array($articleQuery )){
$aid[] = $article['id'];
}
答案 3 :(得分:0)
问题是它不是真的 选择/显示正确的 信息。我想要的是能够 选择第一个的值 阵列强>
你想要的是这个:
$articleQuery = mysql_query("SELECT * FROM articles WHERE topic = 'IT' ");
$article= mysql_fetch_array($articleQuery);
echo $article[0];
你有不必要的循环。您还可以向sql查询添加“limit 1”。虽然我不确定我是否正确理解你的目标。
答案 4 :(得分:0)
使用mysql_fetch_assoc,将使用字段名称作为数组索引器,因此$ article ['id']而不是$ article [0]。这样,如果通过添加新列来更改表的定义,则代码不会中断!
$articleQuery = mysql_query("SELECT * FROM articles WHERE topic = 'IT' LIMIT 1");
$article= mysql_fetch_assoc($articleQuery);
var_dump($article);
答案 5 :(得分:0)
如果你真的只想要第一个结果:
$articleQuery = mysql_query("SELECT * FROM articles WHERE topic = 'IT' LIMIT 1"); // note LIMIT clause
if( false !== ($article = mysql_fetch_array($articleQuery )))
{
$aid = $article['id'];
$media = $article['media'];
$link = $article['link'];
}
echo $aid;
如果你想要所有这些,但可以索引:
$articleQuery = mysql_query("SELECT * FROM articles WHERE topic = 'IT' ");
while($article= mysql_fetch_array($articleQuery ))
{
$aid[] = $article['id'];
$media[] = $article['media'];
$link[] = $article['link'];
}
echo $aid[0];
答案 6 :(得分:0)
为什么不编辑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。