Php 如果数组未返回任何结果,则显示“无结果”消息

Php 如果数组未返回任何结果,则显示“无结果”消息,php,arrays,Php,Arrays,我有一个名为ShowRecords($sql)的函数,在该函数中我有以下代码: function ShowRecords($sql) { $rs=mysql_query($sql,$conn); while($result = mysql_fetch_array($rs)) { $results[] = $result; } return array("results" => $results, "PageNavi" => $table

我有一个名为
ShowRecords($sql)
的函数,在该函数中我有以下代码:

function ShowRecords($sql) {
    $rs=mysql_query($sql,$conn);
    while($result = mysql_fetch_array($rs)) {
        $results[] = $result;
    }
    return array("results" => $results, "PageNavi" => $table_display);
}
我有很多页面,每个页面上都有一个foreach循环:

$array = ShowRecords($sql);
foreach($array["results"] as $porting) {
    //display results
    echo $porting["sequence"];
}
(在函数中)显示一条消息,表示如果没有返回任何结果,则没有结果的最佳方式是什么?我尝试过使用
mysql\u num\u rows
,但是foreach循环显示错误,表示参数无效

有没有办法返回$results数组以包含每个数组项

例如,当我尝试
$results[]=''如果没有返回任何行,我仍然会收到一个错误,提示:

Warning: Illegal string offset 'sequence' because `$results["sequence"]` does not exist

只需检查是否有结果即可进入
while
循环,这意味着如果至少有一行有结果,否则没有结果:

if( mysql_num_rows($rs) > 0 ) {
    while($result = mysql_fetch_array($rs)) {
        $results[] = $result;
    }
} else {
    return array("results" => "No results");
}
这样,当没有结果时,每个页面上的查询
foreach
将只包含一个带有文本
“无结果”
的项


请注意,
mysql
已贬值,您可能应该使用
mysqli

这只是一个快速表示,但您应该对页面本身进行一些检查,而不仅仅是在函数中。通过执行以下操作,您只能在页面本身上执行此操作:

$array = ShowRecords($sql);
if (is_array($array['results'])) {
    foreach($array["results"] as $porting) {
        //display table and results here...
    }
}
我会这样做的。如果没有结果,我会让函数返回false或抛出异常

$rs=mysql_query($sql,$conn);
if (!$rs or !mysql_num_rows($rs)) {
    return false;
}
while($result = mysql_fetch_array($rs)) {
    $results[] = $result;
}
return array("results" => $results, "PageNavi" => $table_display);
然后在执行foreach循环之前,我会检查以确保
$array
不是false

if ($array = ShowRecords($sql)) {
    foreach($array["results"] as $porting) {
        //display table and results here...
    }
}
else {
    echo "No results!";
}

尝试:
if(count($array[“results”])==0)回显“no results”
在foreach循环之前我想在函数中放入一些代码,否则我必须检查每个页面以将其添加到foreach循环之前,然后在返回它之前尝试使用if语句:
if(count($array[“results”])==0)$array[“results”][=“No results”,因此您不必每次都检查它,并且其中有“一个”结果,即“无结果”$数组在函数外部。第一块代码是我的函数
$rs
在此上下文中不存在。他说第一个代码块是一个函数。@Devon啊,你的权利,没有注意到。然后它将是相同的事情,但与
while
循环。再一次,我不想编辑每一页@查尔斯,否则就不好了。我只是告诉你该怎么做。你可以选择做你想做的,但我认为你会想根据是否有结果或没有结果来处理不同的回报,这只能在页面上完成。