You aren't looping through the $rsCatalog table, so it will only show the first row. I think you want to use a nested select and a single recordset in this case like:
<?php
$rsProducts = new WA_MySQLi_RS("rsProducts",$ecartdb,0);
$rsProducts->setQuery("SELECT *, (select count(*) as assigned FROM catalog WHERE CatalogProductID = ProductID) AS assigned FROM products");
$rsProducts->execute();
?>