num_rows le dice cuántas filas hay en el conjunto de resultados que acaba de seleccionar con SELECT consulta. affected_rows le dice cuántas filas se vieron afectadas por un INSERT , UPDATE , REPLACE o DELETE consulta. La diferencia es obvia:
$resultSet = mysqli_query($c, 'SELECT ...');
echo mysqli_num_rows($resultSet);
SELECT el conjunto de resultados entra en num_rows .
mysqli_query($c, 'UPDATE ...');
echo mysqli_affected_rows($c);
Sin conjunto de resultados, sin num_rows .