Tienes una gran confusión ..
PHP -> Lenguaje de programación "del lado del servidor".
Apache -> Servidor HTTP
Mysql -> Servidor de Base de datos.
Cuando desarrollas una aplicación para este ambiente "web" .. las páginas que tu desarrollas las publica y hace accesible tu servidor HTTP (Apache) y las ves con tu navegador preferido. Por eso haces para ver una página algo tipo:
http://www.tal.tal/pagina.html .. o pagina.php .. etc.
En ese caso es tu servidor "HTTP" el que está "sirviendo" la página que le pides.
Si es una página HTML común .. TU vía tu navegador pides tal página y el servidor HTTP te la entrega, pero .. cuando usas PHP .. la página es "generada" por PHP (pre-procesada) haciendo otras cosas PHP como por ejemplo una conexión a una Base de datos para obtener/ingresar datos en ella u otras conexiones a otros sistemas o sitios.
Mysql como tal es -sólo- el servidor de Base de datos de ese tipo "Mysql" que se "accede" a los datos de esta por otro lenguaje más: SQL (Lenguaje estructurado de consultas). A un "servidor" de Base de datos como Mysql puedes accederlo por otros lenguajes como PHP que lo que hacen no es más que "lanzar" a ejecutar tal comando SQL con las funciones adecuadas de ese lenguaje, pero .. también puede ser accedido Mysql como BBDD por otros médios. Lo importante es saber que "Mysql" puede y así debes entender su funcionamiento como algo independiente. Es común ver Mysql de la mano de PHP pero NO es inprescindible usarlo en esa combinación.
Por lo dicho .. el proceso real sería:
Cliente (navegador) <--->
Apache (servidor HTTP)<--->PHP<--->Msyql
Como veras .. el "cliente" (tu navegador) entiende a su vez de "otros" lenguajes, como son "HTML", "Javasacript", "Action Script de Flash", VBScript (según navegador) .. etc.
Con PHP tu "Generas" ese lenguaje que el "cliente" entienda para que puedas "visualizar" lo que con PHP has generado. En ningún momento en PHP tienes "funciones" para "imprimir" algo en "pantalla" por ejemplo. Sólo tienes funciones para "entregar" algo a la "salida" (en este caso al "cliente" que se envie el proceso). Por eso desde PHP "generas" HTML, o javascirpt .. etc. Esto es bien importante saberlo; aquí no se trata de "saber" PHP sino de tener bien claro que programar una aplicación "web" suele involucrar saber de otros lenguajes como HTML, Javascript, SQL (para las BBDD que usemos ..), etc. Hay que conocer "donde" empieza uno y donde acaba o como interactuan estos.
Cuando tu dices que tienes un "formulario" o que quieres hacerlos .. en ese caso esos "formularios" los harás con HTML .. con ayuda de javascript .. o en "flash" o en el lenguaje del lado del "cliente" que quieras. Los datos recolectados desde ese formulario los enviarás a procesar a un script PHP, este script PHP los tomará y si corresponde "compondrá" (en función de tus variables y demás lógica) la sentencia SQL adecuada para realizar una consulta a tu BD y extraer o ingresar datos en tus BBDD, procesará el resultado y generará (según tu lógica) la "salida" que quedará disponible para entregar al cliente (el "HTML" generado o lo que uses).
Entendido todo esto .. si quieres profundiza en hace exactamente PHP .. o "Apahce" (un servidor HTTP en general, no es el único que existe)... o que hace Mysql y como puedes administralo (para crear tus Base de datos, tus tablas .. sus registros, establecer relaciones .. en definitiva: definir tu modelo de datos para la BBDD).
Un saludo,