Не передаються GET данные в SQL запрос
есть вот такой запрос
$sql = "select $sql_fields from public.v_show_rep_distributorcards $where";
перменная $where меняет свое значение в зависимости от условия
if ($where_sql){$where="where $where_sql";}
if ($cardlist){$where="where $cardlist_where";}
Данные не передаются, переменные пустые, возникают разные ошибки и варнинги.Таблицу выводит криво
Вроде как это не правильно. Говорят что 2 ифа подряд нельзя.
Как это победить?:confused:
2. Исходники выкладуй в ББкоде code
3. А что значит where $where_sql ? что в этой переменой?
Цитата: Lone Wolf
1. весь код давай.
2. Исходники выкладуй в ББкоде code
3. А что значит where $where_sql ? что в этой переменой?
2. Исходники выкладуй в ББкоде code
3. А что значит where $where_sql ? что в этой переменой?
$where = 'where $where_sql' это строка которая добавляется к запросу
select $sql_fields from public.v_show_rep_distributorcards [COLOR="Red"]$where[/COLOR]
require_once './role.php'; // Current role (path) params
require_once 'template.php';
$DBCONNECT_CC_MODE = 3; // Both mode ($db_cc and $mdb2_cc)
require_once 'dbconnect_cc.php'; // Sets $mdb2_cc and/or $db_cc
require_once 'extable2.php';
require_once 'forms_pear.php'; // Default form params and includes
//if (!empty($_GET['did'])) { $did = (int)$_GET['did']; } else { $did = null; }
///////////////////////////////////////////
$links = $menu_link; // Global from template
$links += array('Новый поиск' => $self);
$pname = 'Информация по картам';
ShowHeader(array('pname' => $pname,
'links' => $links,
));
// Filter form: ////////////////////////////
//HTML_QuickForm($formName = '', $method = 'post', $action = '', $target = '_self', $attributes = NULL, $trackSubmit = FALSE)
$form =& new HTML_QuickForm('form_cardfilter', 'get', '', '_self', null, true);
$renderer = FormInitDefaults($form, 'plain'); // Set common render options etc (form_pear.php)
$form->addElement('text', 'cardlist', trans('cardlist') . ': ', $form_css);
$form->addElement('header', '', ' Фильтр по дате активации:');
$date_params = array(
'format'=>'d m Y',
'minYear'=>2006,
'maxYear'=>2016,
'addEmptyOption' => true,
'emptyOptionValue' => 0,
);
$adate_from_default = date('Y-m-d', mktime(0, 0, 0, date('n'), 1, date('Y'))); // 1st day of month
$adate_to_default = date('Y-m-d', mktime(0, 0, 0, date('n'), date('d'), date('Y')));
$form->setDefaults(array('adate_from' => $adate_from_default));
$form->addElement('date', 'adate_from', 'с ', $date_params);
$form->setDefaults(array('adate_to' => $adate_to_default));
$form->addElement('date', 'adate_to', 'по ', $date_params);
$form->addElement('submit', null, 'Вывести');
$form->display();
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Tries to validate the form
if ($form->validate()) {
$form->process('ProcessFormSubmit', false);
} // if validated
function ProcessFormSubmit($params)
{
$sql_fields="cid, cvid, cvname, cvcost, cstate, did, dname as dealer, dpid, aid, acid, cactivatetime";
$wheres = array(); //заносим в массив данные которые поступают в виде "11111111-33333333"
if (!empty($_GET['cardlist']) && (is_array($_GET['adate_from']) && is_array($_GET['adate_from'])))
{
$cardlist_str = $params['cardlist'];
$cardlist_parsed = ParseCardlist($cardlist_str); //функция парсит строку
$cardlist_where = Cardlist2SQL($cardlist_parsed, 'cid'); //функция превращает строку в sql запрос
if ($cardlist_where)$wheres[]=$cardlist_where;
}
elseif(empty($_GET['cardlist']) && is_array($_GET['date_params']))
{
if ($adate_from_sql) $wheres[] = "cactivatedate >= $adate_from_sql";
if ($adate_to_sql) $wheres[] = "cactivatedate <= $adate_to_sql";
if ($did) $wheres[] = "did=$did"; //выбираем диапазон значений
}
else
{
echo "<b>Ошибка в списке карт жопа:</b><br>$cardlist_parsed";
echo $_GET['cardlist'];
print_r($_GET['adate_params']);
return;
}
$where_sql = implode(' and ', $wheres);
if ($where_sql){$where="where $where_sql";} //проверяем какое поле заполнено
if ($cardlist){$where="where $cardlist_where";} //и устанавливаем значение для WHERE
$adate_from_sql = Date_Array2Str($params['adate_from'], true); // Convert GET params into date string
if ($adate_from_sql) { $adate_from_sql = $mdb2_cc->quote($adate_from_sql, 'date'); }
$adate_to_sql = Date_Array2Str($params['adate_to'], true); // Convert GET params into date string
if ($adate_to_sql) { $adate_to_sql = $mdb2_cc->quote($adate_to_sql, 'date'); }
echo $sql;
$sql = "select $sql_fields from public.v_show_rep_distributorcards $where"; //собственно сам запрос
echo MkTable(array( //с помощью этой функции рисуеться таблица
'DB' => $db_cc,
'SQL' => $sql,
'Hidden' => $hidden_fields,
'Sorting' => 'did',
'Linked' => array(
'aid' => "act.php?aid=%aid",
'dealer' => "dealer.php?did=%did"
),
'ForceTypes' => array('sum_cvcost' => "_MONEY", 'sum_cvcost_drate' => "_MONEY"),
'Replace' => array(
'cstate' => $dbpairs_cstate,
'debug-show-sql' => true,
),
));
} // ProcessFormSubmit()
ShowFooter();
?>