pwg.images.search returns an error when called with at least two f_* parameters (eg. f_min_date_available and f_max_date_available):
Warning: [mysql error 1241] Operand should contain 1 column(s)
SELECT i.id,
MATCH(i.name, i.comment) AGAINST( 'myquery' IN BOOLEAN MODE) AS weight
FROM images i
WHERE (MATCH(i.name, i.comment) AGAINST( 'myquery' IN BOOLEAN MODE)
OR (CONVERT(file, CHAR) LIKE '%myquery%'))
AND (i.date_available>='2013-02-10',i.date_available<'2013-02-13')
AND 1 = 1 in /piwigo/include/dblayer/functions_mysql.inc.php on line 770
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /piwigo/include/dblayer/functions_mysql.inc.php on line 153
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Reported by thimo on 13 Feb 2013 18:47
Version: 2.4.6
pwg.images.search returns an error when called with at least two f_* parameters (eg. f_min_date_available and f_max_date_available):
Warning: [mysql error 1241] Operand should contain 1 column(s)
SELECT i.id,
MATCH(i.name, i.comment) AGAINST( 'myquery' IN BOOLEAN MODE) AS weight
FROM images i
WHERE (MATCH(i.name, i.comment) AGAINST( 'myquery' IN BOOLEAN MODE)
OR (CONVERT(file, CHAR) LIKE '%myquery%'))
AND (i.date_available>='2013-02-10',i.date_available<'2013-02-13')
AND 1 = 1 in /piwigo/include/dblayer/functions_mysql.inc.php on line 770
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /piwigo/include/dblayer/functions_mysql.inc.php on line 153
FIX
/include/ws_functions.inc.php - line 1280:
$search_result = get_quick_search_results($params['query'],
$super_order_by,
Also some limits are handled wrong (function ws_std_image_sql_filter):
function ws_std_image_sql_filter( $params, $tbl_name='' )
{
$clauses = array();
if ( is_numeric($params['f_min_rate']) )
{
}
if ( is_numeric($params['f_max_rate']) )
{
$clauses[] = $tbl_name.'rating_score<='.$params['f_max_rate'];
}
if ( is_numeric($params['f_min_hit']) )
{
}
if ( is_numeric($params['f_max_hit']) )
{
$clauses[] = $tbl_name.'hit<='.$params['f_max_hit'];
}
if ( isset($params['f_min_date_available']) )
{
$clauses[] = $tbl_name."date_available>='".$params['f_min_date_available']."'";
}
if ( isset($params['f_max_date_available']) )
{
}
if ( isset($params['f_min_date_created']) )
{
$clauses[] = $tbl_name."date_creation>='".$params['f_min_date_created']."'";
}
if ( isset($params['f_max_date_created']) )
{
}
if ( is_numeric($params['f_min_ratio']) )
{
}
if ( is_numeric($params['f_max_ratio']) )
{
$clauses[] = $tbl_name.'width/'.$tbl_name.'height<='.$params['f_max_ratio'];
}
if (is_numeric($params['f_max_level']) )
{
$clauses[] = $tbl_name.'level <= '.$params['f_max_level'];
}
return $clauses;
}
Piwigo Bugtracker #2846
Comment posted by thimo on 10 Mar 2013 12:16
The field limits are still handled incorrectly.