Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запрос на выборку данных
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Запрос на выборку данных

Страниц (1): [1]
 

1. alsio - 27 Января, 2016 - 16:43:43 - перейти к сообщению
Что-то уже голова не соображает. Как правильно сделать запрос? Нужно текущую информацию сравнить с "черным списком" и при наличии совпадений вывести алерт.

В "черном списке" есть поля: адрес, телефон 1, телефон 2, телефон 3.
В текущей форме: адрес, телефон 1, телефон 2

PHP:
скопировать код в буфер обмена
  1. $blacklistsql = mysql_query ("SELECT blacklist_id FROM blacklist WHERE blacklist_adress='".$row['adress']."' OR (blacklist_onetel='".$row['onetel']."' OR blacklist_onetel='".$row['twotel']."' OR blacklist_twotel='".$row['onetel']."' OR blacklist_twotel='".$row['twotel']."' OR blacklist_threetel='".$row['onetel']."' OR blacklist_threetel='".$row['twotel']."')");
  2. $blacklist = mysql_fetch_array($blacklistsql);
  3. if($blacklist["blacklist_id"]<>""){$blacklist="<a href=\"../blacklist/blacklist_update.php?upd=".$blacklist["blacklist_id"]."\" target=\"_blank\"><span class=\"red\">NB! Клиент в черном списке!</span></a>";}


Если убрать сравнение по телефонам и сравниваем только по адресу - все ОК, если добавляем по телефонам - постоянно выводит совпадение (даже если не совпадает).
2. re_nat - 27 Января, 2016 - 18:17:37 - перейти к сообщению
Смотря, что Вам нужно. Если требуется проверить наличие записей, у которых совпадает адрес и хотя бы один из телефонов, то:

... WHERE адрес AND (телефон1 OR телефон2 OR телефон3)
3. alsio - 27 Января, 2016 - 19:37:59 - перейти к сообщению
Проверить любое совпадение. Или адрес, или телефоны. По-идее везде должно быть OR, как в моем примере. Но так постоянно выводит совпадение (даже если не совпадает).
4. Panoptik - 27 Января, 2016 - 20:10:08 - перейти к сообщению
ответ хранится в пустых значениях

подсказка: что будет если в одном из полей черного списка не будет данных, к примеру телефон3 будет пустым и на вход для проверки придет только один номер телефона а второй будет пустым

соответственно

искомый_телефон = ""
телефон из черного списка = ""
"" == "" => что будет?
5. alsio - 28 Января, 2016 - 16:43:23 - перейти к сообщению
Вот спасибо! Действительно! Отсечку пустых полей сделаю, а в остальном значит правильно, через OR?

 

Powered by ExBB FM 1.0 RC1