Esas funciones te devuelven el record-set (conjunto de registros que resultó de la ejecución de tu consulta SQL por tu mysql_query(...) ) en un tipo de variable .. ya sea array (mysql_fetch_array) o un objeto (mysql_fetch_array) y el "row" .. otro array (este no sé mucho de teoría:
www.php.net/mysql_fetch_row seguro que te lo explica mejor que yo).
Los problemas de Warning: mysql_fetch_xxx() suelen suceder cuando tu consulta SQL ejecutada no te devuelve ningún registro o hay un error .. error que puedes siempre localizar por:
mysql_query(....) or die (mysql_error());
y .. antes de hacer cualquier tipo de "_fetch_" o incluso de un mysql_result() .. deberías asegurar que tienes al menos algún resultado (>0) usando la función:
Código PHP:
$sql="tu sentencia SQL";
$consulta=mysql_query($sql);
if (mysql_num_rows($consulta)>0){
// usas tus mysql_fetch_xxx()
} else {
echo "No hay registros para esta consulta";
}
Un saludo,