[TYPO3-german] sql-query führt im Frontend zu anderem Ergebnis als über phpMyAdmin
Alisha
mail at alisha-huber.de
Thu Oct 21 23:28:31 CEST 2010
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
More information about the TYPO3-german
mailing list