Harald: SQL Abfrage

Hallo Gemeinde!

Ich mache eine Datenbankabfrage und lasse das Ergebnis im Titel einer Seite ausgeben:

Code:
....
$rs = mysql(TYPO3_db, "select CONCAT((SELECT title FROM tx_holidayweb_types WHERE uid = type_uids LIMIT 1),' ',city,' - ',(title),' - ', (SELECT title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1)) from tx_holidayweb_accommodations where uid=".$acco);
break;
default:
$rs = mysql(TYPO3_db, "select title from pages where uid=".$this->pid);

....

Bei den theme_uids gibt es Einträge wor dort kein Wert steht.
Bei alle Einträgen die da keinen Wert haben, werden Ohne Titel angezeigt bzw. nur die Bindestriche.

Wie kann ich es erreichen, dass wenn theme_uids keinen Wert beinhalten, dass bei der Ausgabe dann anstatt des Wertes (zb. ... - .... - Urlaub) ausgegeben wird.

Danke für Eure Hilfe

  1. Hi!

    Wie kann ich es erreichen, dass wenn theme_uids keinen Wert beinhalten, dass bei der Ausgabe dann anstatt des Wertes (zb. ... - .... - Urlaub) ausgegeben wird.

    Wenn-Dann-Probleme lassen sich mit Kontrollstrukturen für Fallunterscheidung abhandeln. Wenn du das in PHP-Code machen willst, dann nimm if-else, und für MySQL gibt es die Control Flow Functions.

    Lo!

    1. Wenn-Dann-Probleme lassen sich mit Kontrollstrukturen für Fallunterscheidung abhandeln. Wenn du das in PHP-Code machen willst, dann nimm if-else, und für MySQL gibt es die Control Flow Functions.

      Lo!

      Hi Lo

      Ich bin leider kein Programmierer und kann die Umsetzung nicht.
      Leider verrechnet mir mein programmierer jeden einzelenen codeschnipsel. Desshalb möchte ich dieses Problem selbst lösnen.

      Kann mir denn jemand den Codeschnipsel ergänzen?

      Dank und LG
      Harald

      1. @@Harald:

        nuqneH

        Leider verrechnet mir mein programmierer jeden einzelenen codeschnipsel. Desshalb möchte ich dieses Problem selbst lösnen.

        Dabei wird man dir hier gern behilflich sein.

        Kann mir denn jemand den Codeschnipsel ergänzen?

        Was hat das mit „selbst lösen“ zu tun?

        Du möchtest nicht deinen Programmierer beauftragen, weil dich das Geld kostet? Stattdessen soll die Arbeit hier jemand für dich umsonst erledigen?

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. Was hat das mit „selbst lösen“ zu tun?

          Du möchtest nicht deinen Programmierer beauftragen, weil dich das Geld kostet? Stattdessen soll die Arbeit hier jemand für dich umsonst erledigen?

          Bitte nicht falsch verstehen.
          Ich bin bereit dazuzulernen und möchte dieses Problem selbst lösen.
          Allerdings brauche ich dafür schon etwas Hilfe.

          Harald

          1. Hi!

            Ich bin bereit dazuzulernen und möchte dieses Problem selbst lösen.
            Allerdings brauche ich dafür schon etwas Hilfe.

            Gut, dann sag mal, woran es denn konkret scheitert. Und wo genau du die Ersetzung vornehmen willst: dass die Daten gleich fertig aus dem DBMS kommen oder sollen die Ersetzung erst danach im PHP-Code stattfinden?

            Lo!

            1. Gut, dann sag mal, woran es denn konkret scheitert. Und wo genau du die Ersetzung vornehmen willst: dass die Daten gleich fertig aus dem DBMS kommen oder sollen die Ersetzung erst danach im PHP-Code stattfinden?

              Hi Lo

              $rs = mysql(TYPO3_db, "select CONCAT((SELECT title FROM tx_holidayweb_types WHERE uid = type_uids LIMIT 1),' ',city,' - ',(title),' - ', (SELECT title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1)) from tx_holidayweb_accommodations where uid=".$acco);
              break;
              default:
              $rs = mysql(TYPO3_db, "select title from pages where uid=".$this->pid);

              Konket scheitert es daran, dass alle Einträge die in der Tabelle tx_holidayweb_themes in der Spalte theme_uids  nichts drinnen stehen haben, bei meiner bisherigen Abfrage einen fehler verursachen bzw. dann nur mehr als Seitentitel "- -" angezeigt wird.

              Korrekt erscheint mit die Abfrage so zu gestalten, dass wenn in der Tabelle tx_holidayweb_themes / Spalte theme_uids nichts drinnen ist, dass dieser Teil: SELECT title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1 durch "normalen Text (ZB: Nichts vorhande" ersetzt wird und der Titel dann in etwas so ausschaut:

              Appartement (Ist Typ) Innsbruck (Ist City) - Testhaus (Ist Title) - Nichts vorhanden (Ist Themes bzw. kein Inhalt)

              Appartement Innsbruck - Testhaus - Nichts vorhanden

              Genau dies bekomme ich nicht hin.
              (Wenn kein Wert dann "Nichts vorhanden", wenn Wert da, dann Wert auslesen uns übernehmen.

              Ich hoffe ich konnte mich verständlich ausdrücken.

              Danke
              Harald

              1. Hi,

                und welches Verständnisproblem hast du mit den von dedlfix verlinkten Control Flow Functions?

                ~dave

                1. Hi,

                  und welches Verständnisproblem hast du mit den von dedlfix verlinkten Control Flow Functions?

                  ~dave

                  Hi

                  Ich kann da nicht erkenne, wenn die Spalte leer ist, dass dann ein Wert ausgegeben wird (ZB: Nichts vorhanden)

                  Sg
                  Harald

              2. Hi!

                Korrekt erscheint mit die Abfrage so zu gestalten, dass wenn in der Tabelle tx_holidayweb_themes / Spalte theme_uids nichts drinnen ist, dass dieser Teil: SELECT title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1 durch "normalen Text (ZB: Nichts vorhande" ersetzt wird und der Titel dann in etwas so ausschaut:
                Appartement (Ist Typ) Innsbruck (Ist City) - Testhaus (Ist Title) - Nichts vorhanden (Ist Themes bzw. kein Inhalt)
                Appartement Innsbruck - Testhaus - Nichts vorhanden

                Wenn eine Subquery nichts findet, ist ihr Ergebnis NULL. Da kann man herausfinden, indem man die Abfrage mal im phpMyAdmin oder anderen Verwaltungstools laufen lässt. Allerdings nicht mit CONCAT() sondern die Felder direkt ausgeben, sonst sieht man nur das, was CONCAT() draus macht und nicht das eigentliche Ergebnis. Und dieses eigentliche Ergebnis, speziell der tx_holidayweb_themes-Abfrage, soll ja Gegenstand der Veränderung sein, also muss es auch genau angeschaut werden. Versuch das erstmal nachzuvollziehen und schau, ob du NULL oder was anderes siehst.

                Wenn du da nun schöne NULLs siehst, dann schau dir die bereits verlinkte Handbuchseite an, genauer die Funktion IFNULL(). Damit kannst du entweder den Nicht-NULL-Wert oder einen Ersatzwert bei NULL bekommen.

                Lo!

                1. Wenn eine Subquery nichts findet, ist ihr Ergebnis NULL. Da kann man herausfinden, indem man die Abfrage mal im phpMyAdmin oder anderen Verwaltungstools laufen lässt. Allerdings nicht mit CONCAT() sondern die Felder direkt ausgeben, sonst sieht man nur das, was CONCAT() draus macht und nicht das eigentliche Ergebnis. Und dieses eigentliche Ergebnis, speziell der tx_holidayweb_themes-Abfrage, soll ja Gegenstand der Veränderung sein, also muss es auch genau angeschaut werden. Versuch das erstmal nachzuvollziehen und schau, ob du NULL oder was anderes siehst.

                  Wenn du da nun schöne NULLs siehst, dann schau dir die bereits verlinkte Handbuchseite an, genauer die Funktion IFNULL(). Damit kannst du entweder den Nicht-NULL-Wert oder einen Ersatzwert bei NULL bekommen.

                  Lo!

                  Hi Lo

                  Wenn ich im PHMmyAdmin in de Tabelle: tx_holidayweb_regions
                  die Abfrage: SELECT title FROM tx_holidayweb_regions WHERE uid = region_uid LIMIT 1
                  bekomme ich die Fehlermeldung: #1054 - Unknown column 'region_uid' in 'where clause'

                  ??

                  Ich kenn mich einfach nicht aus.

                  1. Hi!

                    Wenn eine Subquery nichts findet, ist ihr Ergebnis NULL. Da kann man herausfinden, indem man die Abfrage mal im phpMyAdmin oder anderen Verwaltungstools laufen lässt. Allerdings nicht mit CONCAT() sondern die Felder direkt ausgeben, sonst sieht man nur das, was CONCAT() draus macht und nicht das eigentliche Ergebnis. Und dieses eigentliche Ergebnis, speziell der tx_holidayweb_themes-Abfrage, soll ja Gegenstand der Veränderung sein, also muss es auch genau angeschaut werden. Versuch das erstmal nachzuvollziehen und schau, ob du NULL oder was anderes siehst.

                    Wenn du da nun schöne NULLs siehst, dann schau dir die bereits verlinkte Handbuchseite an, genauer die Funktion IFNULL(). Damit kannst du entweder den Nicht-NULL-Wert oder einen Ersatzwert bei NULL bekommen.

                    Wenn ich im PHMmyAdmin in de Tabelle: tx_holidayweb_regions
                    die Abfrage: SELECT title FROM tx_holidayweb_regions WHERE uid = region_uid LIMIT 1
                    bekomme ich die Fehlermeldung: #1054 - Unknown column 'region_uid' in 'where clause'

                    Diese Spalte region_uid bezieht sich auf die äußere Query. Die inneren Selects sind korrelierte Subquerys. Die, die du gerade getestet hast, soll ein Ergebnis liefern, wenn ihre uid mit der region_uid der äußeren Query übereinstimmt. Wenn du sie zum Test allein laufen lassen willst, musst du statt region_uid einen Wert zu Fuß angeben. Aber wenn du die Query allein laufen lässt, kommt entweder eine Ergebnismenge oder keine, also gar nichts. In dem Fall siehst du das NULL nicht, das kommen muss, wenn die Query als Subquery läuft. Deshalb war mein Vorschlag zum Nachvollziehen unter eingermaßen realistischen Endbedingungen nur den CONCAT-Aufruf zu entfernen, so dass die Subquerys nicht mehr Parameter der CONCAT-Funktion sind, sondern Felder der äußeren Query. Das heißt konkret, die gesamte Query in den PMA kopieren, CONCAT und seine Klammern entfernen (aber nicht die um die Subquerys) und dann das Ergebnis anschauen. Ist NULL zu sehen? Bestens, dann die Subquery in IFNULL(subquery, ersatzwert) einsetzen, den gewünschten Ersatzwert als zweiten Parameter festlegen und zur Probe laufen lassen. Dann das CONCAT() wieder wie bisher einbauen.

                    Lo!

                    1. »»Das heißt konkret, die gesamte Query in den PMA kopieren, CONCAT und seine Klammern entfernen (aber nicht die um die Subquerys) und dann das Ergebnis anschauen. Ist NULL zu sehen? Bestens, dann die Subquery in IFNULL(subquery, ersatzwert) einsetzen, den gewünschten Ersatzwert als zweiten Parameter festlegen und zur Probe laufen lassen. Dann das CONCAT() wieder wie bisher einbauen.

                      Hi

                      Nun habe ich das so:

                      $rs = mysql(TYPO3_db, "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);

                      Leider wieder kein Erfolg :-((
                      Harald

                      1. Hi!

                        $rs = mysql(TYPO3_db, "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);
                        Leider wieder kein Erfolg :-((

                        Bitte bei Misserfolgen auch das mitteilen, was zu sehen ist. Der vorliegende Fall ist ein Syntaxfehler, der recht einfach zu erkennen ist. Aber Fehler verstecken sich gern, so dass man einem der Meldungstext beim Finden behilflich sein kann.

                        IFNULL() ist eine Funktion, die in ähnlicher Weise wie CONCAT() eingesetzt wird. Am Ende muss das ungefähr so aussehen:

                        ... CONCAT(..., IFNULL((SELECT ...), ersatztext))

                        Lo!

                        1. IFNULL() ist eine Funktion, die in ähnlicher Weise wie CONCAT() eingesetzt wird. Am Ende muss das ungefähr so aussehen:

                          ... CONCAT(..., IFNULL((SELECT ...), ersatztext))

                          Es gint da leider keinen Fehlertext.
                          Es werden beim Titel hatl nur die Bindestriche - angezeigt
                          :-(

                          harald

                          1. Hi!

                            Es gint da leider keinen Fehlertext.
                            Es werden beim Titel hatl nur die Bindestriche - angezeigt

                            Wenn nur die Bindestriche angezeigt werden und das IFNULL() syntaktisch richtig eigebaut wurde, dann kann das nur bedeuten, dass die Subquery kein NULL ergibt, also ein Ergebnis liefert, das nur nicht angezeigt wird, also ein Leerstring ist beispielsweise. In dem Fall müsstest du herausfinden, ob nicht vielleicht doch ein Datensatz die Bedingung in der Subquery erfüllt. Das hätte dann aber auch schon die Testabfrage mit dem weggelassenen CONCAT zeigen müssen, denn dort müsste ebenfalls kein NULL sondern "nichts" zu sehen sein.

                            Lo!

                            1. Wenn nur die Bindestriche angezeigt werden und das IFNULL() syntaktisch richtig eigebaut wurde, dann kann das nur bedeuten, dass die Subquery kein NULL ergibt, also ein Ergebnis liefert, das nur nicht angezeigt wird, also ein Leerstring ist beispielsweise. In dem Fall müsstest du herausfinden, ob nicht vielleicht doch ein Datensatz die Bedingung in der Subquery erfüllt. Das hätte dann aber auch schon die Testabfrage mit dem weggelassenen CONCAT zeigen müssen, denn dort müsste ebenfalls kein NULL sondern "nichts" zu sehen sein.

                              Lo!

                              Gutenmorgen Lo!

                              Das mit der Datenabfrage in PhpMyAdmin hat nicht funktioniert.
                              Somit kann ich auch nicht genau sagen ob der Wert Null oder was anderes geliefert wird.

                              Ich kenn mich mit diesen Sachen nicht sonderlich aus.
                              Was muss ich den in der SQL Abfrage in PhpMyAdmin eingeben?

                              Für mich wäre ses sehr wichtig, wenn ich das richtig hinbekomme.

                              Danke und Liebe Grüße
                              Harald

                              1. Hallo nochmal

                                Derzeit steht das drinnen:

                                $rs = mysql(TYPO3_db, "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);

                                Ich kann auch nicht genau sagen ob ich das IFNULL richtig gesetzt habe.

                                Lg
                                Harald

                                1. Hi,

                                  $rs = mysql(TYPO3_db, "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);

                                  Ich kann auch nicht genau sagen ob ich das IFNULL richtig gesetzt habe.

                                  Bitte bei Misserfolgen auch das mitteilen, was zu sehen ist. Der vorliegende Fall ist ein Syntaxfehler, der recht einfach zu erkennen ist. Aber Fehler verstecken sich gern, so dass man einem der Meldungstext beim Finden behilflich sein kann.

                                  IFNULL() ist eine Funktion, die in ähnlicher Weise wie CONCAT() eingesetzt wird. Am Ende muss das ungefähr so aussehen:

                                    ... CONCAT(..., IFNULL((SELECT ...), ersatztext))

                                  ~dave

                                  1.   ... CONCAT(..., IFNULL((SELECT ...), ersatztext))

                                    ~dave

                                    Hallo Dave

                                    Es gibt keine Fehlermeldung.
                                    Es werden im Titel der Frontendseite nur die 2 Bindestriche angezeigt ansonsten nichts.

                                    Über PhpMyAdmin habe ich dies nicht eingegeben, weil ich nicht weiss was ich da eingeben muss um eventuell eine Fehlermeldung zu bekommen.

                                    Liebe Grüße
                                    Harald

                                  2.   ... CONCAT(..., IFNULL((SELECT ...), ersatztext))

                                    ~dave

                                    Hi Dave
                                    ich habe das in die SQL Abfrage bei PhpMyAdmin eingegeben:
                                    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)

                                    Fehler ist das
                                    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Testtitel)) from tx_holidayweb_accommodations where uid=".$acco)' at line 1

                                    Ich hoffe dass dies hilft

                                    LG
                                    HArald

                                    1. Hi!

                                        ... CONCAT(..., IFNULL((SELECT ...), ersatztext))

                                      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!

                                      1. 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=...

                                        Lo!

                                        Hi Lo

                                        Ich habe nun das Ganze mal gekürtz um für mich die Bessere Übersicht zu haben
                                        Nun habe ich folgenden Code eingetragen und auch mit den Klammern gespielt - Leider bisher noch ohne erfolg

                                        $rs = mysql(TYPO3_db, "select CONCAT(IFNULL(SELECT title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1), ersatzwert)) from tx_holidayweb_accommodations where uid=".$acco);

                                        Hab ich was übersehen?
                                        Im FE wird nix angezeigt

                                        Lg
                                        Harald

                                        1. Hi!

                                          $rs = mysql(TYPO3_db, "select CONCAT(IFNULL(SELECT title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1), ersatzwert)) from tx_holidayweb_accommodations where uid=".$acco);
                                          Hab ich was übersehen?

                                          Ja, eine Subquery benötigt immer eigene Klammern, auch wenn bereits Klammern aus anderen Gründen um sie herum sind. Es ist eine öffnende Klammer zu wenig - zwischen IFNULL und SELECT müssen zwei stehen. Die schließenden stimmen allerdings.

                                          Im FE wird nix angezeigt

                                          Was auch immer FE ist, das obige Statement sollte zumindest einen Syntaxfehler ergeben. Innerhalb PHPs werden aber MySQL-Fehler nicht von selbst angezeigt. Wenn man den Wortlaut haben möchte, muss man ihn mit mysql_error() abfragen, wenn eine der mysql-Funktionen über ihren Rückgabewert mitteilt, dass ein Fehler auftrat. Es führt jetzt aber zu weit, auch noch den PHP-Code auf mögliche Unterlassungssünden zu analysieren.

                                          Lo!

                                          1. Was auch immer FE ist, das obige Statement sollte zumindest einen Syntaxfehler ergeben. Innerhalb PHPs werden aber MySQL-Fehler nicht von selbst angezeigt. Wenn man den Wortlaut haben möchte, muss man ihn mit mysql_error() abfragen, wenn eine der mysql-Funktionen über ihren Rückgabewert mitteilt, dass ein Fehler auftrat. Es führt jetzt aber zu weit, auch noch den PHP-Code auf mögliche Unterlassungssünden zu analysieren.

                                            Lo!

                                            Hi Lo

                                            $rs = mysql(TYPO3_db, "select CONCAT((SELECT title FROM tx_holidayweb_types WHERE uid = type_uids LIMIT 1),' ',city,' - ',title,' - ', (SELECT title FROM tx_holidayweb_regions WHERE uid = region_uid LIMIT 1),' ', (SELECT title FROM tx_holidayweb_types WHERE uid = type_uids LIMIT 1),' ',IFNULL((SELECT title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1), '')) from tx_holidayweb_accommodations where uid=".$acco);

                                            FUNKTONIERT NUN !!
                                            Ich bin dir echt sehr dankbar für dein unermüdliche Hilfe bei diesem für mich schwierigen Problem.

                                            Vielen Dank nochmal!!
                                            Lg Harald

  2. Hallo Gemeinde!
    NEUE GENAUERERE EKLÄRUNG ZUM BESTEHENDEN PROBLEM

    Ich habe folgendes Problem:

    Bei meiner Tabelle: tx_holidayweb_accommodations gibt es die Spalte: theme_uids mit dem Standartwert: NULL (ansonnsten sind es Zahlen 5,10,15 etc)

    In meiner Datei class.tx_megameta_pi1.php habe ich folgende Abfrage:

    $rs = mysql(TYPO3_db, "select CONCAT((SELECT title FROM tx_holidayweb_types WHERE uid = type_uids LIMIT 1),' ',city,' - ',(title),' - ', (SELECT title FROM tx_holidayweb_themes WHERE uid = theme_uids LIMIT 1)) from tx_holidayweb_accommodations where uid=".$acco);

    Nun bekomme ich im Forontende beim Titel der Webseite nur mehr die 2 Bindestriche wenn ein Eintrag bei den Theme_uids nichts drinnen stehen hat.

    Ich möchte die Abfrage so hinbekommen, dass wenn eben nichts drinnen steht anstatt des Wertes ein Ersatztext geliefert wird (zb. Keine Zuodnung).

    Bei manchen Einträgen kann es vorkommen, dass bei den Theme_uids auch mehrere Werte stehen (ZB: 1,5,7)
    Da sollte natürlich dann nur der erste wert ausgegeben werden.

    Ich hoffe, dass ich mich verständlich ausdrücken konnte und bitte erneut um eure Hilfe.

    PS: den Lösungsansatz IFNULL hatte ich probiert - leider bislang ohne erfolg.

    Lg
    Harry