昨天,另一位用户帮助构建了处理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()?一个只输出一行?
干杯,
斯科特
答案 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开始时,上面的代码将回显该数组中的第一行。