2

昨天另一个用户帮助构建了一个通用函数来处理 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() ?一个只输出一行?

干杯,

斯科特

4

3 回答 3

2

只计算数组

 if(count($data) == 1) {
     // Only one dataset
 } else if(count($data) > 0) {
     // foreach
 } else {
     // no content
 }
于 2012-05-08T06:45:10.783 回答
2

是的。例如:

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

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

于 2012-05-08T06:46:31.673 回答
1
echo $data[0]['title'];

应该打印出您正在寻找的内容。在二维数组中,第一个维度是数组索引,因为数组索引从 0 开始,上面的代码将回显该数组中的第一行。

于 2012-05-08T07:06:15.287 回答