2009-02-24 Esteban Sanchez <estebans@artica.es>
* include/functions_db.php: Fixed a bug in format_array_to_where_clause_sql() when only offset and limit where given. A new parameter was added to solve it, so the behaviour is a bit different now (take a look to the doc examples). Changes were also done in other functions to reflect this new situation. * include/functions_alerts.php, include/functions_modules.php: Updated to changes in format_array_to_where_clause_sql() * include/functions_ui.php: Added a class to each link of the paginator. Style correction. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1479 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
876864faeb
commit
cfcb9c24ef
|
@ -1,3 +1,17 @@
|
||||||
|
2009-02-24 Esteban Sanchez <estebans@artica.es>
|
||||||
|
|
||||||
|
* include/functions_db.php: Fixed a bug in
|
||||||
|
format_array_to_where_clause_sql() when only offset and limit where
|
||||||
|
given. A new parameter was added to solve it, so the behaviour is a
|
||||||
|
bit different now (take a look to the doc examples). Changes were also
|
||||||
|
done in other functions to reflect this new situation.
|
||||||
|
|
||||||
|
* include/functions_alerts.php, include/functions_modules.php: Updated
|
||||||
|
to changes in format_array_to_where_clause_sql()
|
||||||
|
|
||||||
|
* include/functions_ui.php: Added a class to each link of the
|
||||||
|
paginator. Style correction.
|
||||||
|
|
||||||
2009-02-24 Esteban Sanchez <estebans@artica.es>
|
2009-02-24 Esteban Sanchez <estebans@artica.es>
|
||||||
|
|
||||||
* include/auth/mysql.php: Added get_user_id(). Removed field check on
|
* include/auth/mysql.php: Added get_user_id(). Removed field check on
|
||||||
|
|
|
@ -617,7 +617,7 @@ function get_alerts_agent_module ($id_agent_module, $disabled = false, $filter =
|
||||||
$where .= ' AND disabled = 0 ';
|
$where .= ' AND disabled = 0 ';
|
||||||
|
|
||||||
if ($filter) {
|
if ($filter) {
|
||||||
$where .= ' AND '.format_array_to_where_clause_sql ($filter);
|
$where .= format_array_to_where_clause_sql ($filter, 'AND', ' AND ');
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = sprintf ('SELECT * FROM talert_template_modules
|
$sql = sprintf ('SELECT * FROM talert_template_modules
|
||||||
|
|
|
@ -1577,9 +1577,13 @@ function get_db_row_filter ($table, $filter, $fields = false, $where_join = 'AND
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array ($filter))
|
if (is_array ($filter))
|
||||||
$filter = format_array_to_where_clause_sql ($filter, $where_join);
|
$filter = format_array_to_where_clause_sql ($filter, $where_join, ' WHERE ');
|
||||||
|
else if (is_string ($filter))
|
||||||
|
$filter = 'WHERE '.$filter;
|
||||||
|
else
|
||||||
|
$filter = '';
|
||||||
|
|
||||||
$sql = sprintf ('SELECT %s FROM %s WHERE %s',
|
$sql = sprintf ('SELECT %s FROM %s %s',
|
||||||
$fields, $table, $filter);
|
$fields, $table, $filter);
|
||||||
|
|
||||||
return get_db_row_sql ($sql);
|
return get_db_row_sql ($sql);
|
||||||
|
@ -1652,9 +1656,13 @@ function get_db_all_rows_filter ($table, $filter, $fields = false, $where_join =
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array ($filter))
|
if (is_array ($filter))
|
||||||
$filter = format_array_to_where_clause_sql ($filter, $where_join);
|
$filter = format_array_to_where_clause_sql ($filter, $where_join, ' WHERE ');
|
||||||
|
else if (is_string ($filter))
|
||||||
|
$filter = 'WHERE '.$filter;
|
||||||
|
else
|
||||||
|
$filter = '';
|
||||||
|
|
||||||
$sql = sprintf ('SELECT %s FROM %s WHERE %s',
|
$sql = sprintf ('SELECT %s FROM %s %s',
|
||||||
$fields, $table, $filter);
|
$fields, $table, $filter);
|
||||||
|
|
||||||
return get_db_all_rows_sql ($sql);
|
return get_db_all_rows_sql ($sql);
|
||||||
|
@ -1843,8 +1851,7 @@ function format_array_to_update_sql ($values) {
|
||||||
*
|
*
|
||||||
* This function is useful to generate a WHERE clause for a SQL sentence from
|
* This function is useful to generate a WHERE clause for a SQL sentence from
|
||||||
* a list of values. Example code:
|
* a list of values. Example code:
|
||||||
*
|
<code>
|
||||||
* <code>
|
|
||||||
$values = array ();
|
$values = array ();
|
||||||
$values['name'] = "Name";
|
$values['name'] = "Name";
|
||||||
$values['description'] = "Long description";
|
$values['description'] = "Long description";
|
||||||
|
@ -1861,11 +1868,33 @@ function format_array_to_update_sql ($values) {
|
||||||
* There are special parameters such as 'limit' and 'offset' that will be used
|
* There are special parameters such as 'limit' and 'offset' that will be used
|
||||||
* as LIMIT and OFFSET clauses respectively.
|
* as LIMIT and OFFSET clauses respectively.
|
||||||
* @param string Join operator. AND by default.
|
* @param string Join operator. AND by default.
|
||||||
|
* @param string A prefix to be added to the string. It's useful when limit and
|
||||||
|
* offset could be given to avoid this cases:
|
||||||
|
<code>
|
||||||
|
$values = array ();
|
||||||
|
$values['limit'] = 10;
|
||||||
|
$values['offset'] = 20;
|
||||||
|
$sql = 'SELECT * FROM table WHERE '.format_array_to_where_clause_sql ($values);
|
||||||
|
// Wrong SQL: SELECT * FROM table WHERE LIMIT 10 OFFSET 20
|
||||||
|
|
||||||
|
$values = array ();
|
||||||
|
$values['limit'] = 10;
|
||||||
|
$values['offset'] = 20;
|
||||||
|
$sql = 'SELECT * FROM table WHERE '.format_array_to_where_clause_sql ($values, 'AND', 'WHERE');
|
||||||
|
// Good SQL: SELECT * FROM table LIMIT 10 OFFSET 20
|
||||||
|
|
||||||
|
$values = array ();
|
||||||
|
$values['value'] = 5;
|
||||||
|
$values['limit'] = 10;
|
||||||
|
$values['offset'] = 20;
|
||||||
|
$sql = 'SELECT * FROM table WHERE '.format_array_to_where_clause_sql ($values, 'AND', 'WHERE');
|
||||||
|
// Good SQL: SELECT * FROM table WHERE value = 5 LIMIT 10 OFFSET 20
|
||||||
|
</code>
|
||||||
*
|
*
|
||||||
* @return string Values joined into an SQL string that can fits into the WHERE
|
* @return string Values joined into an SQL string that can fits into the WHERE
|
||||||
* clause of an SQL sentence.
|
* clause of an SQL sentence.
|
||||||
*/
|
*/
|
||||||
function format_array_to_where_clause_sql ($values, $join = 'AND') {
|
function format_array_to_where_clause_sql ($values, $join = 'AND', $prefix = false) {
|
||||||
$fields = array ();
|
$fields = array ();
|
||||||
|
|
||||||
if (! is_array ($values)) {
|
if (! is_array ($values)) {
|
||||||
|
@ -1875,6 +1904,15 @@ function format_array_to_where_clause_sql ($values, $join = 'AND') {
|
||||||
$query = '';
|
$query = '';
|
||||||
$limit = '';
|
$limit = '';
|
||||||
$offset = '';
|
$offset = '';
|
||||||
|
if (isset ($values['limit'])) {
|
||||||
|
$limit = sprintf (' LIMIT %d', $values['limit']);
|
||||||
|
unset ($values['limit']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset ($values['offset'])) {
|
||||||
|
$offset = sprintf (' OFFSET %d', $values['offset']);
|
||||||
|
unset ($values['offset']);
|
||||||
|
}
|
||||||
$i = 1;
|
$i = 1;
|
||||||
$max = count ($values);
|
$max = count ($values);
|
||||||
foreach ($values as $field => $value) {
|
foreach ($values as $field => $value) {
|
||||||
|
@ -1882,16 +1920,6 @@ function format_array_to_where_clause_sql ($values, $join = 'AND') {
|
||||||
/* Avoid numeric field names */
|
/* Avoid numeric field names */
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ($field == 'limit') {
|
|
||||||
$limit = sprintf (' LIMIT %d', $value);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($field == 'offset') {
|
|
||||||
$offset = sprintf (' OFFSET %d', $value);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($field[0] != "`") {
|
if ($field[0] != "`") {
|
||||||
$field = "`".$field."`";
|
$field = "`".$field."`";
|
||||||
}
|
}
|
||||||
|
@ -1912,7 +1940,7 @@ function format_array_to_where_clause_sql ($values, $join = 'AND') {
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $query.$limit.$offset;
|
return (! empty ($query) ? $prefix: '').$query.$limit.$offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2729,12 +2757,11 @@ function process_sql_update ($table, $values, $where = false, $where_join = 'AND
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($where) {
|
if ($where) {
|
||||||
$query .= ' WHERE ';
|
|
||||||
if (is_string ($where)) {
|
if (is_string ($where)) {
|
||||||
/* FIXME: Should we clean the string for sanity? */
|
/* FIXME: Should we clean the string for sanity? */
|
||||||
$query .= $where;
|
$query .= $where;
|
||||||
} else if (is_array ($where)) {
|
} else if (is_array ($where)) {
|
||||||
$query .= format_array_to_where_clause_sql ($where, $where_join);
|
$query .= format_array_to_where_clause_sql ($where, $where_join, ' WHERE ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,8 +93,7 @@ function get_network_components ($id_module, $filter = false) {
|
||||||
|
|
||||||
$where = '';
|
$where = '';
|
||||||
if (is_array ($filter)) {
|
if (is_array ($filter)) {
|
||||||
$where = ' AND ';
|
$where = format_array_to_where_clause_sql ($filter, 'AND', ' AND ');
|
||||||
$where .= format_array_to_where_clause_sql ($filter);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = sprintf ('SELECT * FROM tnetwork_component
|
$sql = sprintf ('SELECT * FROM tnetwork_component
|
||||||
|
|
|
@ -719,13 +719,13 @@ function pagination ($count, $url, $offset = 0, $pagination = 0, $return = false
|
||||||
|
|
||||||
$output = '<div>';
|
$output = '<div>';
|
||||||
// Show GOTO FIRST button
|
// Show GOTO FIRST button
|
||||||
$output .= '<a href="'.$url.'&offset=0">'.print_image ("images/control_start_blue.png", true, array ("class" => "bot")).'</a> ';
|
$output .= '<a class="pagination go_first" href="'.$url.'&offset=0">'.print_image ("images/control_start_blue.png", true, array ("class" => "bot")).'</a> ';
|
||||||
// Show PREVIOUS button
|
// Show PREVIOUS button
|
||||||
if ($index_page > 0) {
|
if ($index_page > 0) {
|
||||||
$index_page_prev = ($index_page - (floor ($block_limit / 2))) * $pagination;
|
$index_page_prev = ($index_page - (floor ($block_limit / 2))) * $pagination;
|
||||||
if ($index_page_prev < 0)
|
if ($index_page_prev < 0)
|
||||||
$index_page_prev = 0;
|
$index_page_prev = 0;
|
||||||
$output .= '<a href="'.$url.'&offset='.$index_page_prev.'">'.print_image ("images/control_rewind_blue.png", true, array ("class" => "bot")).'</a>';
|
$output .= '<a class="pagination go_rewind" href="'.$url.'&offset='.$index_page_prev.'">'.print_image ("images/control_rewind_blue.png", true, array ("class" => "bot")).'</a>';
|
||||||
}
|
}
|
||||||
$output .= " ";
|
$output .= " ";
|
||||||
// Draw blocks markers
|
// Draw blocks markers
|
||||||
|
@ -741,7 +741,7 @@ function pagination ($count, $url, $offset = 0, $pagination = 0, $return = false
|
||||||
$inicio_bloque_fake = $inicio_bloque + 1;
|
$inicio_bloque_fake = $inicio_bloque + 1;
|
||||||
// To Calculate last block (doesnt end with round data,
|
// To Calculate last block (doesnt end with round data,
|
||||||
// it must be shown if not round to block limit)
|
// it must be shown if not round to block limit)
|
||||||
$output .= '<a href="'.$url.'&offset='.$inicio_bloque.'">';
|
$output .= '<a class="pagination" href="'.$url.'&offset='.$inicio_bloque.'">';
|
||||||
if ($inicio_bloque == $offset) {
|
if ($inicio_bloque == $offset) {
|
||||||
$output .= "<b>[ $i ]</b>";
|
$output .= "<b>[ $i ]</b>";
|
||||||
} else {
|
} else {
|
||||||
|
@ -756,7 +756,7 @@ function pagination ($count, $url, $offset = 0, $pagination = 0, $return = false
|
||||||
$prox_bloque = ($i + ceil ($block_limit / 2)) * $pagination;
|
$prox_bloque = ($i + ceil ($block_limit / 2)) * $pagination;
|
||||||
if ($prox_bloque > $count)
|
if ($prox_bloque > $count)
|
||||||
$prox_bloque = ($count -1) - $pagination;
|
$prox_bloque = ($count -1) - $pagination;
|
||||||
$output .= '<a href="'.$url.'&offset='.$prox_bloque.'">'.print_image ("images/control_fastforward_blue.png", true, array ("class" => "bot")).'</a>';
|
$output .= '<a class="pagination go_fastforward" href="'.$url.'&offset='.$prox_bloque.'">'.print_image ("images/control_fastforward_blue.png", true, array ("class" => "bot")).'</a>';
|
||||||
$i = $index_counter;
|
$i = $index_counter;
|
||||||
}
|
}
|
||||||
// if exists more registers than i can put in a page (defined by $block_size config parameter)
|
// if exists more registers than i can put in a page (defined by $block_size config parameter)
|
||||||
|
@ -765,7 +765,7 @@ function pagination ($count, $url, $offset = 0, $pagination = 0, $return = false
|
||||||
// as painted in last block (last integer block).
|
// as painted in last block (last integer block).
|
||||||
if (($count - $pagination) > 0) {
|
if (($count - $pagination) > 0) {
|
||||||
$myoffset = floor (($count - 1) / $pagination) * $pagination;
|
$myoffset = floor (($count - 1) / $pagination) * $pagination;
|
||||||
$output .= '<a href="'.$url.'&offset='.$myoffset.'">'.print_image ("images/control_end_blue.png", true, array ("class" => "bot")).'</a>';
|
$output .= '<a class="pagination go_last" href="'.$url.'&offset='.$myoffset.'">'.print_image ("images/control_end_blue.png", true, array ("class" => "bot")).'</a>';
|
||||||
}
|
}
|
||||||
// End div and layout
|
// End div and layout
|
||||||
$output .= "</div>";
|
$output .= "</div>";
|
||||||
|
|
Loading…
Reference in New Issue