Mysql只返回第一个结果

Mysql只返回第一个结果,mysql,cakephp,cakephp-1.2,Mysql,Cakephp,Cakephp 1.2,我对搜索表单有以下查询: // General Query $conditions = array( 'editore LIKE' => "%$e%", 'titolo LIKE' => "%$t%" ); 现在,如果用户选择填写某个字段(如作者、年份等),我有: if (isset($menu)&&$menu!='') $conditions[]=array('classe LIKE' => "%$menu%"); $query_t

我对搜索表单有以下查询:

// General Query
$conditions = array(
    'editore LIKE' => "%$e%",
    'titolo LIKE' => "%$t%"
);
现在,如果用户选择填写某个字段(如作者、年份等),我有:

if (isset($menu)&&$menu!='')
    $conditions[]=array('classe LIKE' => "%$menu%");
$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");
或:

if ($anno&&$anno2)
    $conditions[] = array('anno BETWEEN ? AND ?' => array($anno,$anno2));
如果用户为该书选择了一些标签,我有:

if (isset($menu)&&$menu!='')
    $conditions[]=array('classe LIKE' => "%$menu%");
$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),而它应该会给我所有这些书的详细信息。

您能在执行之前发布您得到的查询吗?这将有助于将潜在的php问题与潜在的SQL问题分开。@SamuelEUSTACHI在执行查询之前,它应该是我在问题末尾编写的查询。执行查询时,它会给我一本包含所有详细信息的书。在这里解决:好的,这已经解决了,但您的问题中没有纯SQL查询。我的要求是正确的,因为碰巧您有一个php错误,而不是SQL错误。总的来说,最好设法缩小问题的范围,以便迅速地解决它。这就是为什么很高兴看到查询中的实际内容(“echo”它,例如,如果您使用PHP)并在SQL客户机(比如PhpMyAdmin)中运行查询,看看问题是否来自这里