Object of class mysqli_result could not be converted to string

Założony przez  Kleston21.

wersja skryptu MyBB: 1.6.12
adres forum: brak
na czym polega problem (screen, opis, komunikaty):
Problem opiszę screenami i kodem bo sam nie wiem o co chodzi. Na starszych wersjach skryptu działa idealnie.
Prosił bym o poprawienie kodu.

Kiedy usunę tę linijkę w szablonie to wszystko działa ale nie mogę jej usunąć bo w tedy nie pokaże mi liczby graczy online
<td class="thead" colspan="3">
<strong><b>{'$db->num_rows($ad3)'}</b> graczy online na serwerze.</strong>
</td>

[Obrazek: 67724300003795449894.jpg]

Szablon: panel_gracza_online
<html>
    <head>
        <title>{$mybb->settings['bbname']} - {$pageTitle}</title>
        {$headerinclude}
    </head>
    <body>
        {$header}
        <table width="100%" border="0" align="center">
            <tr>
                {$gamecpnav}
                <td valign="top">
                    <table border="0" cellspacing="0" cellpadding="5" class="tborder">
                        <tr>
                            <td class="thead" colspan="3">
                                <strong><b>{'$db->num_rows($ad3)'}</b> graczy online na serwerze.</strong>
                            </td>
                        </tr>
                        <tr>
                            <td class="trow2">
                                <table border="0" cellspacing="0" cellpadding="5" class="tborder">
                                    <tr>
                                        <td class="tcat">#</td><td class="tcat">Imię i Nazwisko</td><td class="tcat">Przegrany Czas</td>
                                    </tr>
                                    {$onlineuser}
                                    {$noonline}
                                </table>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
        {$footer}
    </body>
</html>

Kod PHP
    elseif($mybb->input['action'] == "online")
    {
        
$ad3 $db->query("SELECT * FROM rrp_players WHERE online = 1");
        if(
$db->num_rows($ad3) != 0)
        {
            
$c 1;
            
$onlineuser '';
            
$zmiennaid '';
            
$bgcolor 'trow1';
            
            while(
$onlinechar $db->fetch_array($ad3))
            {
                if(
$onlinechar['adminlvl'] >= 1)
                {
                    
$admin '<span class="ingame1">Admin</span>';
                }
                else
                {
                    
$admin '';
                }

                
$bgcolor alt_trow();
                
$ad4 $db->query("SELECT * FROM mybb_users WHERE uid = '{$postac['global_acc']}'");
                
$member $db->fetch_array($ad4);
                
$onlineuser .= '<tr><td class="'.$bgcolor.' smalltext">'.$c++.'</td><td class="'.$bgcolor.' smalltext"><a id="various'.$onlinechar['id'].'" href="gamecp.php?action=characters&nick='.$onlinechar['name'].'">'.$onlinechar['name'].' '.$admin.'</a></td><td class="'.$bgcolor.' smalltext">'.$onlinechar['hours'].' godzin i '.$onlinechar['minutes'].' minut</td></tr>';
                
$zmiennaid .= '$("#various'.$onlinechar['id'].'").fancybox();';
            }
        }
        else
        {
            
$noonline '<tr><td colspan="3"><center><b>Serwer pusty</b></center></td></tr>';
        }
        eval(
"\$out .= \"".$templates->get("panel_gracza_online")."\";");
    }
    else
    {
        eval(
"\$out .= \"".$templates->get("panel_gracza")."\";");
    } 
Snake_ napisał 10.03.2014, 17:11:
Przenoszę.
Bo nie ma czegoś takiego: {'$db->num_rows($ad3)'}, przypisz to do zmiennej np. $online. Czyli (ponad pętlą):
$online = $db->num_rows($ad3);

I potem w szablonie {$online}.
Robiłem tak ale bez zmian.

Edit
Zrobiłem tak ale dałem to nad ifem zaraz pod zapytaniem i teraz wyświetla poprawnie. W moim przypadku 0 bo zero graczy.



Użytkownicy przeglądający ten wątek:

1 gości