|
|
|
| Всем доброго времени суток. Есть запрос:
"SELECT
order.user_num, managers.id, managers.email,
managers.phone, managers.password, managers.id_company,
managers.type, company.balance, company.nds,
company.name, company.logo, company.url, company.form,
DATE_FORMAT(date_to, '%d.%m.%Y') as date_to
FROM
`order`, `managers`, `company`
WHERE
managers.id='$_SESSION[id]' and
company.id='$_SESSION[id_company]' and
order.id_company='$_SESSION[id_company]'
ORDER BY
order.id DESC"
|
Если order.id_company='$_SESSION[id_company]' - если такой записи нет, то ВЕСЬ запрос вообще не выполняется.
А мне нужно, чтобы если такой записи нет, то получались другие данные вложенные в запросе. Как это сделать???? | |
|
|
|
|
|
|
|
для: kapitalist
(03.04.2014 в 21:23)
| | лол. запрос выполняется в любом случае если нем нет ошибок, а вот данные можно и не получить. делайте 2 запроса, если первый данные не вернул - выполняйте второй | |
|
|
|
|
|
|
|
для: psychomc
(03.04.2014 в 23:17)
| | Ясно. Спасибо. Надеялся, что это будет возможно сделать одним запросом. | |
|
|
|
|
|
|
|
для: kapitalist
(04.04.2014 в 09:56)
| | здесь сложно что-либо советовать, т.к не понятно что вы подразумеваете под "другими данными", если это фактически тот же запрос, но без условия session, тогда можно выгребать изначально всё одним запросом и на стороне PHP уже решать что делать с данными. если это кардинально другой запрос то выполнять точно отдельно | |
|
|
|
|
|
|
|
для: psychomc
(04.04.2014 в 10:29)
| | По сути идет запрос
SELECT order.user_num, managers.id, managers.email, managers.phone, managers.password,
managers.id_company, managers.type, company.balance, company.nds, company.name, company.logo,
company.url, company.form, DATE_FORMAT(date_to, '%d.%m.%Y') as date_to FROM `order`, `managers`,
`company` WHERE managers.id='$_SESSION[id]' and company.id='$_SESSION[id_company]' and
order.id_company='$_SESSION[id_company]' ORDER BY order.id DESC
|
Но если значение order.user_num не получено, то есть равно 0, то нужны все остальные данные из этого же запроса. | |
|
|
|
|
|
|
|
для: kapitalist
(03.04.2014 в 21:23)
| | правильно, выборка данных осуществляете с явным указанием условия WHERE
WHERE
managers.id='$_SESSION[id]' and
company.id='$_SESSION[id_company]' and
order.id_company='$_SESSION[id_company]'
|
если нету совпадения хотя бы в одном условии, то вернет пустой результат.
Может вместо AND(И) Вам нужно OR(ИЛИ) использовать?
-----
Ну или просто вот так
<?php
$query_str="SELECT
order.user_num, managers.id, managers.email,
managers.phone, managers.password, managers.id_company,
managers.type, company.balance, company.nds,
company.name, company.logo, company.url, company.form,
DATE_FORMAT(date_to, '%d.%m.%Y') as date_to
FROM
`order`, `managers`, `company`
WHERE ";
if (isset($_SESSION[id])) $query_str.=" managers.id='$_SESSION[id]'
and company.id='$_SESSION[id_company]'
and order.id_company='$_SESSION[id_company]'
ORDER BY order.id DESC";
else $query_str.="_ДРУГОЕ УСЛОВИЕ_";
$res_sql = mysql_query($query_str);
?>
|
| |
|
|
|