[TYPO3-mvc] Big problems (Bug?) with $query-in() (little bit urgent)

Manfred Rutschmann manfred.rutschmann at revier.de
Mon Sep 27 08:47:56 CEST 2010


Hi List,

i had a table where some relations between objects are stored. In one field
i have comma seperated uid`s stored. No i have to query some things in
relation with other ones. Example:

My field fahrzeug contains this: 13,14

Now, perform the query:

$query->matching(
	$query->in('fahrzeug',array(13))
);
$query->execute();

Results:

SELECT tx_rkcamperchecker_domain_model_preisconfig.* 
FROM tx_rkcamperchecker_domain_model_preisconfig 
WHERE (tx_rkcamperchecker_domain_model_preisconfig.fahrzeug IN ('13') 
AND tx_rkcamperchecker_domain_model_preisconfig.typ = '1') 
AND tx_rkcamperchecker_domain_model_preisconfig.deleted=0 
AND tx_rkcamperchecker_domain_model_preisconfig.hidden=0 
AND tx_rkcamperchecker_domain_model_preisconfig.pid 
IN (14, 162, 168, 201, 200, 199, 198, 197, 196, 195, 167, 194, 193, 192,
191, 190, 189, 188, 166, 187, 186, 185, 184, 165, 183, 182, 181, 180, 179,
164, 178, 177, 176, 175, 174, 163, 173, 172, 171, 170, 169, 112, 119, 161,
160, 159, 158, 157, 118, 156, 155, 154, 153, 152, 117, 151, 150, 148, 147,
146, 116, 145, 144, 143, 142, 141, 115, 140, 139, 138, 137, 136, 135, 134,
114, 133, 132, 131, 130, 129, 128, 113, 127, 125, 124, 122, 121, 120, 66,
75, 74, 73, 72, 71, 70, 69, 68, 15, 16, 17, 18, 39, 59, 58, 51, 38, 50, 49,
48, 47, 46, 37, 297, 45, 44, 43, 36, 65, 64, 63, 62, 33, 61, 60, 57, 56,
55, 54, 202, 53, 52, 42, 41, 40, 22, 32, 31, 30, 29, 28, 27, 26, 25, 35,
34, 24, 23, 19, 20, 21, 108, 111, 110, 109, 105, 299, 298, 106, 104, 90,
102, 101, 99, 98, 97, 96, 95, 94, 93, 92, 91, 76, 89, 88, 87, 86, 103, 84,
83, 82, 81, 80, 79, 78)

13 columns x 0 rows in last result. Duration for 1 query: 0,000 sec


At this point i have to modify my sql qnd write my own statement:

$query->statement("SELECT tx_rkcamperchecker_domain_model_preisconfig.* 
FROM tx_rkcamperchecker_domain_model_preisconfig 
WHERE (tx_rkcamperchecker_domain_model_preisconfig.fahrzeug IN (13) 
AND tx_rkcamperchecker_domain_model_preisconfig.typ = '1') 
AND tx_rkcamperchecker_domain_model_preisconfig.deleted=0 
AND tx_rkcamperchecker_domain_model_preisconfig.hidden=0 
AND tx_rkcamperchecker_domain_model_preisconfig.pid 
IN (14, 162, 168, 201, 200, 199, 198, 197, 196, 195, 167, 194, 193, 192,
191, 190, 189, 188, 166, 187, 186, 185, 184, 165, 183, 182, 181, 180, 179,
164, 178, 177, 176, 175, 174, 163, 173, 172, 171, 170, 169, 112, 119, 161,
160, 159, 158, 157, 118, 156, 155, 154, 153, 152, 117, 151, 150, 148, 147,
146, 116, 145, 144, 143, 142, 141, 115, 140, 139, 138, 137, 136, 135, 134,
114, 133, 132, 131, 130, 129, 128, 113, 127, 125, 124, 122, 121, 120, 66,
75, 74, 73, 72, 71, 70, 69, 68, 15, 16, 17, 18, 39, 59, 58, 51, 38, 50, 49,
48, 47, 46, 37, 297, 45, 44, 43, 36, 65, 64, 63, 62, 33, 61, 60, 57, 56,
55, 54, 202, 53, 52, 42, 41, 40, 22, 32, 31, 30, 29, 28, 27, 26, 25, 35,
34, 24, 23, 19, 20, 21, 108, 111, 110, 109, 105, 299, 298, 106, 104, 90,
102, 101, 99, 98, 97, 96, 95, 94, 93, 92, 91, 76, 89, 88, 87, 86, 103, 84,
83, 82, 81, 80, 79, 78)")

And perform:

13 columns x1 rows in last result set. Duration for 1 query: 0,000 sec.

Result:
"uid";"pid";"tstamp";"crdate";"cruser_id";"deleted";"hidden";"geschaeftsjahr";"typ";"relation";"wert";"fahrzeug";"anbieter"
"9";"79";"1285568440";"1279203489";"3";"0";"0";"1";"1";"";"22";"13,14";""

The extbase produces for values for IN() queries this: "fahrzeug IN ('13')"
but instead of that i need fahrzeug IN (13) to get my sql working. If i
have only one value in the table field extbase works with his  single
qoute. But i cant say to my client that he puts only only one relation in
that field ;-)

I need some ideas to fix this in my extbase. I wouldnt like write my own
statements for this easy query. Running 1.3.0 alpha 1 at the moment. 

Thanks and kind regards
Manfred



More information about the TYPO3-project-typo3v4mvc mailing list