Hallo,
ich hab folgendes Problem:
Ich bin dabei die Modern_Linklist meinen Bedürfnissen etwas anzupassen. Dazu gehört auch, dass in der DB der Wert NULL zugelassen ist(damit sollte Typo doch eigentlich zurecht kommen).
Bis jetzt läuft die Abfrage in der Extension wie folgt:
$categoryLabelsResults = $GLOBALS['TYPO3_DB']->exec_SELECTquery( '*', $databaseTable, $theField . '=' . $GLOBALS['TYPO3_DB']->quoteStr( $theValue, $databaseTable ) . ' ' . $whereClause, $groupBy, $orderBy, $limit );
Jetzt muss ich beim Auslesen mit PHP natürlich eine Fallunterscheidung machen. Wie verwirkliche ich das ganze nun am besten in PHP?
Wenn die Variable "$theValue" = NULL ist, funktioniert die Abfrage natürlich nicht, da der SQL_Syntax bei NULL wie folgt ist: SELECT * FROM ... WHERE ... IS NULL
Vielen Dank schonmal für die Hilfe.
$where= $theValue ? $theField . '=' . $GLOBALS['TYPO3_DB']->quoteStr( $theValue, $databaseTable ).' ' : '';
$categoryLabelsResults = $GLOBALS['TYPO3_DB']->exec_SELECTquery( '*', $databaseTable, $where . $whereClause, $groupBy, $orderBy, $limit );
Vielen Dank schonmal - ich werd es nachher versuchen...
mmh funktioniert irgendwie noch nicht...
was bedeutet eigentlich das
in $where?
das gleiche wie
if($theValue)
$where= $theField . '=' . $GLOBALS['TYPO3_DB']->quoteStr( $theValue, $databaseTable ).' ';
else
$where= '';
Achso - ok dann is klar.
Blöderweise findet das Programm keinen einzigen Eintrag mit NULL in der Spalte ($theField)... obwohl es diese gibt. #angry#
Also das Problem ist folgendes:
Wenn ich für $theValue eine Zahl eingebe, ließt er aus der Datenbank alle Einträge mit dieser Zahl in der Spalte aus (so soll es ja auch funktionieren).
Wenn $theValue aber NULL ist, dann findet er anscheinend nichts in der DB - obwohl es Einträge mit NULL gibt.
Ich bin mir allerdings auch nicht ganz sicher, was ich $theValue im Falle von NULL zuweisen muss...
$theValue = '';
$theValue = 'NULL';
$theValue = NULL;
oder etwas anderes?
änder doch einfach die DBspalte, in dem du den default-Wert auf 0 setzt.
UPDATE xxx set Spalte=0 where Spalte IS NULL
Das Problem ist, dass Typo3 nicht das einzige Programm ist, dass auf die DB zugreift...
Ich muss das also mit der NULL hinbekommen.