Yii Framework Forum: Esiste Un Modo Per Unire I Risultati Di Due Search() ? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Esiste Un Modo Per Unire I Risultati Di Due Search() ? Rate Topic: -----

#1 User is offline   realtebo 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 03-October 12
  • Location:Ferrara

Posted 28 May 2013 - 07:19 AM

Ho un pezzo di codice che esegue due search, con due distinti criteri.

Esiste il modo per unirne i risultati ?

Ho provato array_merge, array_merge_recursive, etc.. ma non funzionano, perchè i risultati del metodo search() non è un array
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 28 May 2013 - 07:14 PM

Mmmm potrebbe essere poco performante, ma potresti fare un foreach "manuale" dei due risultati e creare uno nuovo. Potresti anche creare una cache dei risultati in modo tale da velocizzare le ricerche successive.

Se sei in vena di sperimentazioni, potresti creare una vista, e creare un model su quella vista ed usare una unica search, ma dipende da che search devi realizzare.
0

#3 User is offline   realtebo 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 03-October 12
  • Location:Ferrara

Posted 29 May 2013 - 01:27 AM

Argh ... dato che per fortuna è solo un report 'errori', per cui ci si basa sul fatto che vengano tenuti limitati, abbbiamo scelto di fare la schifezza di fare due findAll(), che danno degli array come risultato, e unirli (+), quindi abbiamo creato un carraydataprovider disabilitando però la paginazione ... amen ..
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#4 User is offline   Peppe 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 20
  • Joined: 12-January 13
  • Location:Macerata - Italy

Posted 07 June 2013 - 03:50 AM

View Postrealtebo, on 28 May 2013 - 07:19 AM, said:

Ho un pezzo di codice che esegue due search, con due distinti criteri.

Esiste il modo per unirne i risultati ?

Ho provato array_merge, array_merge_recursive, etc.. ma non funzionano, perchè i risultati del metodo search() non è un array

Penso che questo faccia al caso tuo:
http://www.yiiframew...ergeWith-detail
0

#5 User is offline   realtebo 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 03-October 12
  • Location:Ferrara

Posted 07 June 2013 - 05:32 AM

uhm, no .. questo crea una unica query con due condizioni diverse, io devo eseguire due query separatamente, unirne i risultati e trovare il modo di ordinarle e paginarle come fossero una unica cosa ...
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#6 User is offline   Peppe 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 20
  • Joined: 12-January 13
  • Location:Macerata - Italy

Posted 07 June 2013 - 01:05 PM

View Postrealtebo, on 07 June 2013 - 05:32 AM, said:

uhm, no .. questo crea una unica query con due condizioni diverse, io devo eseguire due query separatamente, unirne i risultati e trovare il modo di ordinarle e paginarle come fossero una unica cosa ...

Quindi devi fare una UNION query?
Se non basta il "CDbCriteria.MergeWith" con "OR" come parametro, potresti evitare completamente il CDbCriteria e generare il recordset con "CSqlDataProvider" scrivendo tu l'Ql completo: http://www.yiiframew...SqlDataProvider
Se ne è parlato anche qui: http://www.yiiframew..._union+criteria
1

#7 User is offline   realtebo 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 03-October 12
  • Location:Ferrara

Posted 10 June 2013 - 10:52 AM

SqlDataProvider sembra proprio fare al caso mio ! Ci darò una occhiata approfondita, grazie
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
0

#8 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 10 June 2013 - 07:18 PM

Interessante, se vuoi/puoi, quando hai terminato potresti scrivere un wiki per tutta la community. La cosa non sembra essere banale ed è senz'altro utile.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users