0

我有一个搜索表单的查询:

// General Query
$conditions = array(
    'editore LIKE' => "%$e%",
    'titolo LIKE' => "%$t%"
);

现在,如果用户选择填写某个字段(例如作者、年份等),我有:

if (isset($menu)&&$menu!='')
    $conditions[]=array('classe LIKE' => "%$menu%");

或者:

if ($anno&&$anno2)
    $conditions[] = array('anno BETWEEN ? AND ?' => array($anno,$anno2));

如果用户为这本书选择了一些标签,我有:

$query_t = $CdBibliotem->query("SELECT codiceBiblio FROM cd_bibliotem WHERE codiceTematica IN (".implode(',', $fields).")");        
$query_t = Set::classicExtract($query_t,'{n}.cd_bibliotem.codiceBiblio'); 
$tot=implode(',', $query_t);
$conditions[]=array('codiceBiblio IN (?)'=> "$tot");

这应该可以,但是我不知道为什么,它只给了我第一条记录

这是调试最终查询的示例,其中用户仅选择 1 个标签,而将其他字段留空:

Array (
[editore LIKE] => %%
[titolo LIKE] => %%
[0] => Array
    (
        [autori LIKE] => %%
    )

[1] => Array
    (
        [codiceBiblio IN (?)] => 118729,118656,118645,118554,118534,118533,118532,118531,118530,118529,118528,118527,118526,118121,117632,117515,117040,116562,115851,115787,114613,114612,113545,113385,113142
    ) )

在这种情况下,它给了我第一本书的所有细节(id=118729),同时它应该给我所有这些书的细节。

4

0 回答 0