num_rows informuje ile wierszy jest w zestawie wyników, który właśnie wybrałeś za pomocą SELECT zapytanie. affected_rows informuje, na ile wierszy ma wpływ INSERT , UPDATE , REPLACE lub DELETE zapytanie. Różnica jest oczywista:
$resultSet = mysqli_query($c, 'SELECT ...');
echo mysqli_num_rows($resultSet);
SELECT zestaw wyników trafia do num_rows .
mysqli_query($c, 'UPDATE ...');
echo mysqli_affected_rows($c);
Brak zestawu wyników, brak num_rows .