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

Php 如何仅显示从数据库获取的数组的第一个结果?,php,arrays,Php,Arrays,目前,我有一个从数据库获取数据的代码和一个列出所有结果的foreach循环。但是我想一次显示一个结果。我只是想提醒你,我对这件事真的很陌生。非常感谢你的帮助 function featured_topics(){ $featureNum = 162; $query = mysql_query("SELECT * FROM `topics` WHERE `country_id` = '$featureNum'"); $numrows = my

目前,我有一个从数据库获取数据的代码和一个列出所有结果的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'];
}

0表示第0行。

您不能按自己的方式执行此操作

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

查询结果:

points | name
--------------------
    23 | Iceland
    83 | Georgia
     8 | Spain
    10 | Argentina 
你坐第一排(冰岛)。然后,稍后再执行相同的查询。您将得到以下结果:

points | name
--------------------
    83 | Georgia
    23 | Iceland
     8 | Spain
    10 | Argentina 
哇!现在你又到了冰岛,却忘了格鲁吉亚

这一困境的解决方案

  • 一次抓取所有行,缓存它们,然后在空闲时循环浏览它们。我相信这是最好的解决办法
  • 使用“orderby”指定一些顺序,并准备好处理迭代期间插入行的问题

  • 看起来您的代码将只打印数据库中的一行。是否要打印所有这些内容?还有,你所说的“一次一个结果”是什么意思?这是否意味着你会给出一个数字(比如N),它会返回第N行?是的。e、 我想通过数字1,得到结果1。谢谢。这可能是我不知道的另一个问题。
    points | name
    --------------------
        23 | Iceland
        83 | Georgia
         8 | Spain
        10 | Argentina 
    
    points | name
    --------------------
        83 | Georgia
        23 | Iceland
         8 | Spain
        10 | Argentina