Hi!
select CONCAT((SELECT title FROM tx_holidayweb_types WHERE uid = type_uids LIMIT 1),' ',city,' - ',(title),' - ', (SELECT IFNULL title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1, Testtitel)) from tx_holidayweb_accommodations where uid=".$acco)
#1064 - You have an error in your SQL syntax; [...]
In dem Fall sieht man den Syntaxfehler auch ohne Meldungstext. Wenn du die Query im PMA nachvollziehen wilst musst du zudem noch die PHP-Bestandteile entfernen und eine Wert direkt einsetzen. Im Teil
where uid=".$acco)
ist das "" der Abschluss des Query-Strings und danach kommt PHP-Code. Für den PMA musst du die Anführungszeichen und den Rest dahinter löschen und eine Zahl einfügen, die im uid-Feld enthalten ist.
Zurück zum eigentlichen Thema: Du hast immer noch nicht das IFNULL() nach dem Prinzip eingebaut, wie ich es gezeigt und dave nochmal wiederholt hat.
Deine jetzige Abfrage sieht gekürzt so aus:
select CONCAT((erste subquery),' ',city,' - ',(title),' - ', (zweite subquery)) from tx_holidayweb_accommodations where uid=...
Mit dem IFNULL() muss sie so aussehen
select CONCAT((erste subquery),' ',city,' - ',(title),' - ', IFNULL((zweite subquery), ersatzwert)) from tx_holidayweb_accommodations where uid=...
Wenn du statt der ersten Subquery ebenfalls einen Ersatzwert haben willst, dann musst du da das IFNULL() nach demselben Prinzip einbauen. Achte auf die Klammernsetzung. Du hast hier zum einen die Klammern der Funktionen CONCAT() und IFNULL() und zum anderen die Klammern um die Subquery (sowie ein überflüssiges Paar um title, falls das nicht nur eine Abkürzung für eine weitere Subquery ist). Mach dir auch klar, welche schließende Klammer zu welcher öffnenden gehört. Dann solltest du sehen, wie weit die Funktionen "greifen", was also alles zu ihrer Liste an Parametern gehört und was außerhalb liegt. Zudem hast du hier die Verschachtlung zu beachten: CONCAT() außen, IFNULL() innen und darin nochmal die Subquery.
Lo!