witam, czy ktoś może wie dlaczego tak jest?
korzystam z biblioteki HTML_AJAX, łączę się z bazą zeby coś wyciągnąć a potem wrzucic to korzystając z technik ajaxa na strone.
i tu problem:
jak korzsytam z interfejsu mysqli, czyli:
Kod
class SheetSizes{

    function getSizes($sheets_id){
        $db = db_connect();
        if (!$db){
            return 0;
        }
        $querySizes = "select * from tSheets where "
                    ."sheets_id ='$sheets_id';";
        $result = $db->query($querySizes);
        
        if (!$result){
                  return false;
                  }
        $row = $result->fetch_assoc();
        $sizes["name"] = $row["sheets_name"];
        $sizes["columns"] = $row["sheets_columns"];
        $sizes["rows"] = $row["sheets_rows"];
        $db->close;
        return $sizes;
    }
}

problem jest taki ze zmienna $result jest albo pusta, albo są w niej jakieś śmieci.

a jak korzsytam z proceduralnego interfejsu mysql:
Kod
class SheetSizes{

    function getSizes($sheets_id){
        if (mysql_connect('localhost', 'user', 'pass')and mysql_select_db('baza')) {
            $wynik = mysql_query("select * from tSheets where sheets_id ='$sheets_id';");
            mysql_close();
        }
        if ($wynik) {
               $row = mysql_fetch_assoc($wynik);
         }

        $sizes["name"] = $row["sheets_name"];
        $sizes["columns"] = $row["sheets_columns"];
        $sizes["rows"] = $row["sheets_rows"];
        return $sizes;
    }
}

to wszystko jest ok...
używam mysqli od dawna, mam swoje pliki konfigurujące połączenia i udostępniające interfejs tego połączenia i wolałbym nie musieć pzechodzić na mysql.

po stronie klienta mam:
Kod
<script type='text/javascript'>
function buildSheet()
{
    remoteSheetSizes.getSizes(1);
    
}

// Stworzenie tablicy asocjacyjnej do składowania metod zwrotnych
var sheetSizesCallback = {
  getSizes: function(resultSet) {

     if (!resultSet) drawTable(0, 0, 'brak');
     else{
         var name = resultSet["name"];
        var columns = resultSet["columns"];
        var rows = resultSet["rows"];
        
        drawTable(columns, rows, name);
     }
  }
}

function drawTable(columns, rows, name)
{
    var resultDiv = document.getElementById('tContent');
     resultDiv.innerHTML = '';
     resultDiv.innerHTML = name + ' ' + columns + ' ' + rows;
}

var remoteSheetSizes = new SheetSizes(sheetSizesCallback);//(sheetSizesCallback);
</script>
<input name="load" type="button" value="Load" onclick="buildSheet()" />


chciałbym żeby ktoś mi wytłumaczył dlaczego interfejs obiektowy mysqli nie działa poprawnie, a proceduralny mysql jak najbardziej tak. Czy to jakiś bug HTML_AJAX, czy może np popełniam błąd nawiązują w ten sposób połączenie wewnątrz klasy , która de facto jest potem przez ta bibliotekę odwzorowywana na obiekty JavaScriptu.

Pozdrawiam.