imagino que es porque están intentando enseñar en un solo archivo, pero normalmente uno cuando esta comenzando tiene algo así
conexion.php
archivo.php donde trbajaras
Código PHP:
Ver originalrequire_once 'conexion.php';
/*el fragmento que tengas arriba*/
//llamas a la función para que conecte con mysql una vez que llamaste a esta mientras no cierres la conexión no es necesario volverla a llamar en el mismo archivo
conectar();
$publicacion_sql = "SELECT mensaje FROM mensajes WHERE categoria = " .
$row_temas['id_categoria'];
$ultimo_sql = "SELECT autor,fecha FROM mensajes WHERE tema = " .
$row_temas['id_tema'] . " ORDER BY fecha DESC LIMIT 1";
ahora yendo a tu problema en específico, en tu código en ningún sitio hay una variable que se llame
$row_temas por eso siempre te dará ese warning, es como que yo te diga busca la manzana en un sitio donde solo hay peras que me vas a decir tu??
$row_temas['id_tema'] que debería de tener?? el resultado de alguna consulta?? si es así simplemente has la consulta y asignala a la variable.
Una vez vayas avanzando y aprendiendo el lenguaje iras buscando la manera de separar la logica de programación de la parte de la vista, saludos