Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用循环和数组跨多个表的未发布事件总数_Php_Mysql_Arrays - Fatal编程技术网

Php 使用循环和数组跨多个表的未发布事件总数

Php 使用循环和数组跨多个表的未发布事件总数,php,mysql,arrays,Php,Mysql,Arrays,我有一个函数,可以从表中获取未发布记录的数量(这很好)。但是现在我想得到多个表中未发布事件的总数。我想我可以使用$tables=array('projects','ESTIONAL')等来执行foreach循环。然后将它们各自的结果相加,得到总数并返回该值?但是我不知道怎么做,这种循环有点超出我的能力 function publishCount($table) { $sql = mysql_query("SELECT COUNT(*) AS nb FROM ".$table." WHER

我有一个函数,可以从表中获取未发布记录的数量(这很好)。但是现在我想得到多个表中未发布事件的总数。我想我可以使用$tables=array('projects','ESTIONAL')等来执行foreach循环。然后将它们各自的结果相加,得到总数并返回该值?但是我不知道怎么做,这种循环有点超出我的能力

function publishCount($table) {
    $sql = mysql_query("SELECT COUNT(*) AS nb FROM ".$table." WHERE published='0' OR published=''") or die(mysql_error());
    $result = mysql_result($sql, 0);
    if (!$result == 0) { echo 'Awaiting to be published <span class="badge badge-important">'.$result.'</span>'; }
    else { echo 'Awaiting to be published <span class="badge badge-inverse">'.$result.'</span>'; }
}
函数publishCount($table){
$sql=mysql\u query(“从“$table.”中选择COUNT(*)作为nb,其中published='0'或published=''')或die(mysql\u error());
$result=mysql\u result($sql,0);
如果(!$result==0){echo'正在等待发布。'$result.';}
else{echo'正在等待发布。$result.';}
}

您应该这样编辑您的函数:

function publishCount($table) {
    $sql = mysql_query("SELECT COUNT(*) AS nb FROM ".$table." WHERE published='0' OR published=''") or die(mysql_error());
    $result = mysql_result($sql, 0);
    return $result;
}
因此,您可以在
$tables
列表中进行循环:

$tables = array('projects', 'testimonials', [...]);
$nbResults = 0;
foreach($tables as $table) {
    $nbResults += publishCount($table);
}
if($nbResults == 0) {
    // ...
} else {
    // ...
}

您知道是否可以在查询中也指定一个用户id来显示某个用户未发布的总数?是的,只需在
WHERE
之后添加
user\u id=$user\u id