如何只显示从数据库中获取的数组的第一个结果?

时间:2011-09-07 03:23:51

标签: php arrays

目前我有一个从数据库中获取数据的代码和一个列出所有结果的foreach循环。但我想一次显示一个结果。只是为了警告你,我对此真的很陌生。真的很感谢你的帮助。

function featured_topics(){
    $featureNum = 162;
    $query = mysql_query("SELECT *
        FROM `topics`
        WHERE `country_id` = '$featureNum'");
    $numrows = mysql_num_rows($query);
    while( $row = mysql_fetch_array($query)){
        $featured_topics[] = $row;
    }
    return $featured_topics;
}

function get_featured_topic(){

    $get_topics = featured_topics();
    $topic_count = sizeof($get_topics);
    $current_topic = $get_topic[$topic_count];

    echo $current_topic['topic_id'];
}

3 个答案:

答案 0 :(得分:1)

 function featured_topics(){
    $featureNum = 162;
     $query = mysql_query("SELECT *
     FROM `topics`
     WHERE `country_id` = '$featureNum' LIMIT 0,1");
    $numrows = mysql_num_rows($query);
    $row = mysql_fetch_array($query);

    return $row;
}

答案 1 :(得分:0)

$result = mysql_result($query, 0, 'column')

0表示第0行。

答案 2 :(得分:0)

你不能以你想要的方式做到这一点。

SQL行没有内在顺序,因此无法保证下次执行此查询时行的顺序相同。以下是可能发生的事情:

查询结果:

points | name
--------------------
    23 | Iceland
    83 | Georgia
     8 | Spain
    10 | Argentina 

你走第一排(冰岛)。然后,您执行相同的查询。你得到了这个结果:

points | name
--------------------
    83 | Georgia
    23 | Iceland
     8 | Spain
    10 | Argentina 

Whooops!现在你又来了冰岛,失去了格鲁吉亚的踪迹。

解决这一难题

  1. 一次抓住所有行,缓存它们,然后在闲暇时循环浏览它们。我相信这是最好的解决方案。
  2. 使用“ORDER BY”指定一些订单,并准备好处理迭代期间插入行的问题。