Zum Inhalt springen

Bedingung für leere DB Abfrage?

Erstellt am 15. Februar 2008 · 8 Antworten · letzte Antwort am 15. Februar 2008

Tags: Frage

masteryoda ·

Hallo zusammen,

ich verwende momentan diesen TS Code um ein Formular mit vorgefüllten Werten auszufüllen:

[globalVar = GP:validate=1]
config.no_cache = 1

tt_content.mailform {
    11 = LOAD_REGISTER
    11{
        meinWert.cObject = RECORDS
        meinWert.cObject {
            dontCheckPid = 1 
            source.data = GPvar:code
            tables = tx_pluss
            conf.tx_pluss = TEXT
            conf.tx_pluss {
                    	field = anschrift1
                    }
        }
        meinWert1.cObject = RECORDS
        meinWert1.cObject {
            dontCheckPid = 1 
            source.data = GPvar:code
            tables = tx_pluss
            conf.tx_pluss = TEXT
            conf.tx_pluss {
                    	field = anschrift2
                    }
        }
        meinWert2.cObject = RECORDS
        meinWert2.cObject {
            dontCheckPid = 1 
            source.data = GPvar:code
            tables = tx_pluss
            conf.tx_pluss = TEXT
            conf.tx_pluss {
                    	field = anschrift3
                    }
        }
        meinWert3.cObject = RECORDS
        meinWert3.cObject {
            dontCheckPid = 1 
            source.data = GPvar:code
            tables = tx_pluss
            conf.tx_pluss = TEXT
            conf.tx_pluss {
                    	field = anschrift4
                    }
        }
        meinWert4.cObject = RECORDS
        meinWert4.cObject {
            dontCheckPid = 1 
            source.data = GPvar:code
            tables = tx_pluss
            conf.tx_pluss = TEXT
            conf.tx_pluss {
                    	field = anschrift5
                    }
        }
        meinWert5.cObject = RECORDS
        meinWert5.cObject {
            dontCheckPid = 1 
            source.data = GPvar:code
            tables = tx_pluss
            conf.tx_pluss = TEXT
            conf.tx_pluss {
                    	field = anschrift6
                    }
        }
        meinWert6.cObject = RECORDS
        meinWert6.cObject {
            dontCheckPid = 1 
            source.data = GPvar:code
            tables = tx_pluss
            conf.tx_pluss = TEXT
            conf.tx_pluss {
                    	field = anschrift7
                    }
        }
        meinWert7.cObject = RECORDS
        meinWert7.cObject {
            dontCheckPid = 1 
            source.data = GPvar:code
            tables = tx_pluss
            conf.tx_pluss = TEXT
            conf.tx_pluss {
                    	field = anschrift8
                    }
        }
    }
    20.data.insertData=1
    20.badMess = Folgende Felder sind Pflichtfelder!
    20.target = _self
    20.REQ.labelWrap.wrap = <div class="csc-form-label-req">|</div>
}

[global]

Ich würde gerne vorher prüfen ob die Datenbankabfrage auf GPvar:code (=UID) erfolgreich ist. Falls keine UID existiert, soll anstelle des Formulars ein Hinweis angezeigt werden.
Wie macht man sowas am besten?

schöne Grüße
Jörg

masteryoda ·

sorry hab das vergessen, aber ich kann meinen Beitrag auch nicht editieren?
Sehe nirgends einen EDIT Button.

gruß

Update: komisch bei diesem Post ist oben rechts ein BEARBEITEN button, aber wieso nicht bei dem ersten Beitrag?

just2b ·

weil man nur die posts editieren kann, die noch nicht beantwortet sind, außer man ist moderator, dann darf man 😉

georg

masteryoda ·

ok ok danke das du es für mich ausgebessert hast 😉

wäre zu meinem Anliegen nicht "numrows" angebrachter als ifempty?
also wenn die Anfrage 0 ergebnisse liefert, mach xyz.

mir fehlen da allerdings ein paar praktische beispiele, aber ich versuchs trotzdem mal, zumindest festzustellen wieviele Treffer die Abfrage hätte...

10 = CONTENT
10.if.isTrue.numRows {
     table = tx_pluss
     select {
         anschrift1
        Where {
         uid = GPvar:code
        }  
      }
}

Wäre das so ungefähr richtig? Bitte nicht kloppen 🙂

gruß

just2b ·

hmm um das mit 1x abzufragen würde ich eine condition nehmen, numrows kann sicher auch gehen

[globalVar = GP:code> 0]
...
[global]

georg

masteryoda ·

Hallo Georg,

eine Prüfung auf GPvar:code > 0 macht hier leider nicht viel Sinn, da der Code ja als Pflichtfeld definiert wird und somit gar nicht leer sein kann bzw. ich dadurch ja auch nicht bestimmen kann ob dieser Code in der Tabelle überhaupt gefunden wird.

Könnte ich diese if.isTrue.NumRows {} Geschichte nicht einfach um meinen TS Code aus dem ersten Posting bauen?
Und wie leite ich dann im negativen Fall auf eine andere Seite um?

PS: sorry fürs "diggen", aber google hilft mir hier mal nicht weiter #angry#

grüße
Jörg

Update:
im Endeffekt möchte ich genau das erreichen wie der Benutzer hier, Beitrag 5:
http://www.typo3forum.net/forum/typo3-4-x-fragen-probleme/23160-if-abfrage-ts-m-glich.html
Allerdings anstelle von wrap mit Umleitung, und ohne eine Klasse in der localconf.php anlegen zu müssen 😉

just2b ·

wie gesagt es kann sicher auch funktionieren, bin aber nicht mehr motiviert für das heute und biete eine letzte andere möglichkeit vorm wochnende 😃

php datei erstellen irgendwo

<?php
  function user_emptyHeadline($cmd) {
    deine query...
    if ... return true
    else return false;
  }
?>

includeLibs.chpageheadline = pfadzudeiner/datei.php

[userFunc = user_emptyHeadline(empty)]
#....
[global]

georg

masteryoda ·

da sag ich mal Tausend Dank!

Da ich im "reinen" PHP doch um einiges geschickter bin als in TS, werde ich die userFunc - Funktion lieben

schönes Wochenende!