събиране на резултати от функции

IzKuFeLiQqQqQ

Registered
Здравейте имам няколко функции и искам в друга функция да изведа сбора на това което извеждат

ето и ги тях

PHP:
function allfilms(){
    $allfilms = mysql_query("SELECT COUNT(f_id) AS num FROM `films` ")or die(mysql_error());
    $r = mysql_fetch_assoc($allfilms);
    echo $r['num'];    
}

function allalbums(){
    $allalbums = mysql_query("SELECT COUNT(a_id) AS num FROM `albums` ")or die(mysql_error());
    $r = mysql_fetch_assoc($allalbums);
    echo $r['num'];     
}

function allfiles(){ //В ТАЯ ИСКАМ ДА СЪБЕРА
       
       echo allalbums() + allfilms();
}

примерен изход
allfilms = 4
allalbums = 7
а allfiles извежда 47 вместо 11...

как да събера allfilms и allalbums ???
 
Тези функции принтират директно резултата и не връщат резултат. Правилният подход е:

PHP:
function allfilms(){
    $allfilms = mysql_query("SELECT COUNT(f_id) AS num FROM `films` ")or die(mysql_error());
    $r = mysql_fetch_assoc($allfilms);
    return (int) $r['num'];    
}

function allalbums(){
    $allalbums = mysql_query("SELECT COUNT(a_id) AS num FROM `albums` ")or die(mysql_error());
    $r = mysql_fetch_assoc($allalbums);
    return (int) $r['num'];     
}

function allfiles(){ //В ТАЯ ИСКАМ ДА СЪБЕРА
    return allalbums() + allfilms();
}

//test
echo allfilms() . '<br />';
echo allalbums() . '<br />';
echo allfiles();

но все пак, ако държиш на твойта логика:

PHP:
function allfilms(){
    $allfilms = mysql_query("SELECT COUNT(f_id) AS num FROM `films` ")or die(mysql_error());
    $r = mysql_fetch_assoc($allfilms);
    echo $r['num'];    
}

function allalbums(){
    $allalbums = mysql_query("SELECT COUNT(a_id) AS num FROM `albums` ")or die(mysql_error());
    $r = mysql_fetch_assoc($allalbums);
    echo $r['num'];     
}

function allfiles(){ //В ТАЯ ИСКАМ ДА СЪБЕРА
    ob_start();
    allalbums();
    $allalbums = ob_get_clean();
    ob_start();
    allfilms();
    $allfilms = ob_get_clean();
    echo $allalbums + $allfilms;
}

//test
allfilms();
echo   '<br />';
allalbums();
echo   '<br />';
allfiles();
 
аз отначало с return ги бях направил ама нз за ко го смених...

иначе стана... блодаря +1 :?:
 

Back
Горе