Mobile apps can be divided into three groups, and they will decide what programming language you will need to learn: native apps, hybrid apps, and web apps.
With native apps, you use the native programming language for that device, such as Objective-C for Apple devices or Java for Android devices. What you code for one device cannot be used on the other device. However, their strength is that, with best code practices, you'll get the smoothest and fastest apps that have the look and feel of the native environment. You'll work with different software development kits (SDKs) for each environment (such as Xcode for Apple and Eclipse for Android) to create the final product (such as an apk file for Android). Android apps can be build on PCs and Macs; Apple apps need a Mac machine to compile the final product that is uploaded to the App Store.
Web apps are simply web pages hosted on normal web servers, but sized to fit comfortably in smartphones. They are coded with any number of web technologies, including PHP/MySQL and other database technologies, since they are web sites at heart. They are accessed by smartphones the same way as any other web site, but with a little extra coding, you can provide an icon that will reside on the home screen of the device if the user chooses to save your site to the home screen. Web apps don't use device SDK because they are uploaded to web servers just like any other web site content. Because they don't use SDKs, they cannot access device capabilities like camera, etc.