Twój błąd polega na tym że dokonałeś dwukrotnego podliczenia odpowiedzi z MySQL.
1. Poprzez użycie zapytania
"SELECT COUNT(*) FROM news WHERE autor='".$wiersz['user']."
które w MySQL zwraca wynik w postaci jednego wiersza (rekordu) z liczbą postów od tego użytkownika.
2. Poprzez użycie funkicji
mysql_num_rows($newsow);
dokonałeś podliczenia wszystkich wyników (wierszy - rekordów) zwróconych przez MySQL, dlatego logicze jest że otrzymałeś "1", ponieważ - patrz punkt 1.
Proponuję wykonać to w ten sposób:
<?php
$zap = \"SELECT * FROM news\";
$ilosc = \"SELECT * FROM news WHERE autor='\".$wiersz['user'].\"'\";
$w = mysql_query (\"SELECT * FROM users ORDER BY uid\"); echo \"<table width=500 align=center bgcolor=black cellspacing=0 cellpadding=2>\"; {echo \"<tr bgcolor=#400000><td>\".$wiersz['user'].\"</td><td>\".$iloscnewsow.\"</td></tr>\";} ?>
Zmiany objęły zapytanie w 9 lini kodu, usunąłem funkcję COUNT...