vpx_db_query_select($a_query, $a_options = array(SQL_CALC_FOUND_ROWS => FALSE))Simple creation of the select query See media_management_search for example
array $a_query
string
vpx_shared/vpx_shared_db.inc, line 141
<?php
function vpx_db_query_select($a_query, $a_options = array(SQL_CALC_FOUND_ROWS => FALSE)) {
assert(isset($a_query[VPX_DB_QUERY_A_FROM]));
$a_query[VPX_DB_QUERY_A_SELECT_OPTIONS] = array();
if (isset($a_options[SQL_CALC_FOUND_ROWS]) && $a_options[SQL_CALC_FOUND_ROWS]) {
$a_query[VPX_DB_QUERY_A_SELECT_OPTIONS] = array(SQL_CALC_FOUND_ROWS);
}
if (isset($a_query['b_allow_distinct']) && $a_query['b_allow_distinct'] && !isset($a_query[VPX_DB_QUERY_A_HAVING])) {
$a_query[VPX_DB_QUERY_A_SELECT_OPTIONS][] = "DISTINCT";
unset($a_query[VPX_DB_QUERY_A_GROUP_BY]);
}
$a_db_query[] = "SELECT";
$a_db_query[] = implode(" ", $a_query[VPX_DB_QUERY_A_SELECT_OPTIONS]);
if (!isset($a_query[VPX_DB_QUERY_A_SELECT_EXPR]) || empty($a_query[VPX_DB_QUERY_A_SELECT_EXPR])) {
$a_query[VPX_DB_QUERY_A_SELECT_EXPR][] = "*";
}
$a_db_query[] = implode(",", $a_query[VPX_DB_QUERY_A_SELECT_EXPR]);
$a_db_query[] = "FROM";
$a_db_query[] = implode(",\n", $a_query[VPX_DB_QUERY_A_FROM]);
// Joins
if (isset($a_query[VPX_DB_QUERY_A_JOIN])) {
$a_db_query[] = vpx_db_query_joins($a_query[VPX_DB_QUERY_A_JOIN]);
}
// Where
if (isset($a_query[VPX_DB_QUERY_A_WHERE]) && !empty($a_query[VPX_DB_QUERY_A_WHERE])) {
$a_db_query[] = "\nWHERE";
$a_db_query[] = vpx_db_where($a_query[VPX_DB_QUERY_A_WHERE]);
}
if (isset($a_query[VPX_DB_QUERY_A_GROUP_BY]) && !empty($a_query[VPX_DB_QUERY_A_GROUP_BY])) {
$a_db_query[] = "\nGROUP BY";
$a_db_query[] = implode(", ", $a_query[VPX_DB_QUERY_A_GROUP_BY]);
}
if (isset($a_query[VPX_DB_QUERY_A_HAVING]) && !empty($a_query[VPX_DB_QUERY_A_HAVING])) {
$a_db_query[] = "\nHAVING";
$a_db_query[] = implode(", ", $a_query[VPX_DB_QUERY_A_HAVING]);
}
if (isset($a_query[VPX_DB_QUERY_A_ORDER_BY]) && !empty($a_query[VPX_DB_QUERY_A_ORDER_BY])) {
$a_db_query[] = "\nORDER BY";
$a_db_query[] = implode(", ", $a_query[VPX_DB_QUERY_A_ORDER_BY]);
}
if (isset($a_query[VPX_DB_QUERY_I_LIMIT])) {
$a_db_query[] = sprintf("\nLIMIT %d", db_escape_string($a_query[VPX_DB_QUERY_I_LIMIT]));
if (isset($a_query[VPX_DB_QUERY_I_OFFSET]) && $a_query[VPX_DB_QUERY_I_OFFSET] > 0) {
$a_db_query[] = sprintf("\nOFFSET %d", db_escape_string($a_query[VPX_DB_QUERY_I_OFFSET]));
}
}
return implode(" ", $a_db_query);
}
?>