1.
$res = mysql_query("SELECT * FROM `picture` WHERE `author` = " . $id);
$cnt = mysql_num_rows($res);
2.
$res = mysql_query("SELECT COUNT(*) FROM `picture` WHERE `author` = " . $id);
$row = mysql_fetch_array($res);
$cnt = $row[0];
В первом варианте мне не нравится выборка всех строк, которые мне не нужны (мне нужно только их количество).
Во втором - не понятно превращение результата в массив: а что будет находиться в $row[1] и т.д.?