如何从自定义MySQL获取函数中检索1个结果

时间:2012-05-08 06:42:28

标签: php mysql database function

昨天,另一位用户帮助构建了处理MySQL查询的通用函数。它看起来像这样:

function fetchAll($query) {
  $res = mysql_query($query) or trigger_error("db: ".mysql_error()." in ".$query);
  $a   = array();
  if ($res) {
    while($row = mysql_fetch_assoc($res)) { 
        $a[]=$row;
    }
  }
  return $a;
}

要输出返回的结果,我只需执行以下操作:

$data = fetchAll("SELECT * FROM news_table ORDER BY id LIMIT 10");

foreach ($data as $row) {
    echo $row['title'];
}

我的问题涉及在数组中只有一个结果时输出结果。就像显示页面的当前博客文章一样。我想知道如果没有先调用foreach循环我是否可以做到这一点?有没有办法输出数组的第一个结果,因为我不需要循环它。

也许我可以有一个替代功能,而不是上面的fetchAll()?一个只输出一行?

干杯,

斯科特

3 个答案:

答案 0 :(得分:2)

算一下数组

 if(count($data) == 1) {
     // Only one dataset
 } else if(count($data) > 0) {
     // foreach
 } else {
     // no content
 }

答案 1 :(得分:2)

是。例如:

echo $data[0]['title'];

基本上你的$ data是一个二维数组,第一个维度是行号(count以0开头),所以如果你知道它的数字,你可以直接访问任何行。如果你只有一行,那一定是0。

答案 2 :(得分:1)

echo $data[0]['title'];

应该准确打印您要找的内容。在2D数组中,第一个维度是数组索引,当数组索引从0开始时,上面的代码将回显该数组中的第一行。