Hallo,
ich habe in meiner FE-Extension eine Query eingebaut, die soweit auch funktioniert. Nur ist die Ergebnisliste im Frontend oft eine andere als als wenn ich die Abfrage direkt in phpMyAdmin ausführe. Im Frontend werden oft weniger Datensätze angezeigt.

Es geht um Adressdaten, die alle gleich aufgebaut sind. Jedem Adressdatensatz können verschiedene "Kategorien" zugeordnet sein, die in einer 1:n - Tabelle liegen ("fe_users_user_xxx"). Die Bearbeitung der Datensätze von fe_users mit diesen Kategorien funktioniert im Backend auch einwandfrei. Alle werden korrekt angezeigt.

Die Query, die generiert werden soll: (Beispiel)
SELECT DISTINCT b.uid, b.company, b.name, b.address, b.telephone, b.email, b.zip, b.city, b.www FROM fe_users_user_xxx a INNER JOIN fe_users b ON b.uid = a.uid_local WHERE b.deleted = 0 AND b.usergroup = 1 AND b.pid = '47' AND (1 = 1 OR a.uid_foreign = 1 OR a.uid_foreign = 2 OR a.uid_foreign = 3 OR a.uid_foreign = 4 OR a.uid_foreign = 5 OR a.uid_foreign = 6 OR a.uid_foreign = 7 OR a.uid_foreign = 8 OR a.uid_foreign = 9 OR a.uid_foreign = 10 OR a.uid_foreign = 11 OR a.uid_foreign = 12 OR a.uid_foreign = 13 OR a.uid_foreign = 14 OR a.uid_foreign = 17) AND b.static_info_country like 'DEU' AND b.zip like '60%'

Diese Abfrage führt bei phyMyAdmin beispielsweise zu 4 Datensätzen, über die Extension ausgeführt, werden mir im Frontend nur 3 Datensätze ausgegeben. Das geschieht bei mehreren Stichproben und die Inhalte der Datensätze geben keinen Hinweis darauf, warum manche nicht gefunden werden könnten, sie sind alle gleich aufgebaut und haben auch entsprechend zugeordnete Datensätze in der zweiten Tabelle.

ich baue dieses Statement in meiner Klasse so auf:

Der Where-String wird aus den Angaben eines Formulars zusammengestellt. In diesem Formular werden per checkbox die gewünschten Werte ausgewählt. Zudem wird ein Länderkürzel übergeben und die ersten beiden Ziffern der PLZ.
(Code gekürzt...)
$whereString = "AND (1 = 1 ";
foreach ($this->piVars['auswahl'] as $a => $b){
        $whereString.=" OR a.uid_foreign = ".$a;
        $whereString.= ")";
$whereString.= " AND b.static_info_country like '".$this->piVars['land']."' AND b.zip like '".$this->piVars['plz']."%'";
                        
                        
                        
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery(
"DISTINCT b.uid,
b.company,
b.name,
b.address,
b.telephone,
b.email,
b.zip,
b.city,
b.www",
"fe_users_user_xxx a INNER JOIN fe_users b ".
"ON b.uid = a.uid_local " ,
"b.deleted = 0
AND b.usergroup = 1
AND b.pid = '".$feUserPid."'
".$whereString, "b.zip");

Ich finde das komplett unlogisch und habe nicht die geringste Idee, woran das liegen könnte. Hat hier jemand vielleicht einen Tipp?
Das wäre super!
Danke und Gruß
Alisha


                                
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an