Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Проверка допполя на наличия значения в БД при добавлении новости - как выводить список найденного?

Проверка допполя на наличия значения в БД при добавлении новости - как выводить список найденного?


     16.03.2016    Общие вопросы по PHP, Хаки, MySQL    416

вопрос
Доброго времени!

Возникла необходимость проверять значение допполя "телефон" на наличие ранее введенных таких-же номеров.

Написал небольшной хак, проверяющий наличие или отсутствие номера (значения допполя):



Все в принципе работает. Но возникла необходимость выводить в ответе список публикаций, в которых встречается указанный номер...

И суть вопроса: как получить значения id, title, alt_name найденных результатов?

Заранее спасибо.

Ответа пока нет


Комментарии пользователей (7)

misha-koder
7

299 | 77

misha-koder - 16 марта 2016 12:29 - Юзер

Во-первых - если номера храните в едином формате (что очень правильно), можно выборку сократить, используя WHERE `xfields` LIKE '%xfname=79991112233%'
Во-вторых - foreach здесь не к месту, результаты нужно обрабатывать внутри while.
В-третьих - записывайте нужные данные в массив, кодируйте в json и возвращайте, а в запросе используйте функцию $.getJSON

ravchik
66

375 | 123

ravchik - 16 марта 2016 13:18 - Юзер

увы, если-бы я обладал такими познаниями в php, я вряд ли задавал-бы здесь вопросы...

P.S.: На счет выборки- понял, спасибо за подсказку.

nowheremany
192

1659 | 1292

nowheremany - 16 марта 2016 13:50 - Эксперт

foreach( $xfields as $row)
{
    if( $row[xfields] ){
        $row[xfields] = xfieldsdataload( $row[xfields] );
        if( $row[xfields][$xfname] ){
            $rowdata = explode( "~", $row[xfields][$xfname] );
            foreach( $rowdata as $value ){
                if( $value ){
                    $value = trim( $value );
                    $stack[$value][] = $config['http_home_url'].'?newsid='.$row['id'];
                }
            }
        }
    }
}
die(json_encode($stack));


и через JS $.getJSON его разбирать

Благодарность принимаю тут Связь

ravchik
66

375 | 123

ravchik - 16 марта 2016 14:07 - Юзер

Спасибо! Очень помогли!
А без foreach все-таки никак?

nowheremany
192

1659 | 1292

nowheremany - 16 марта 2016 14:17 - Эксперт

Можно все что внутри foreach закинуть во внутрь while. Ну памяти поменьше будет есть, ну и чуть быстрее стработает

Благодарность принимаю тут Связь

ravchik
66

375 | 123

ravchik - 16 марта 2016 15:14 - Юзер

Большое спасибо за помощь! Все получилось.

Вдруг кому понадобится.. Окончательный вариант:



vitnet
218

2171 | 930

vitnet - 16 марта 2016 15:55 - Эксперт

+ для защиты
$... = $db->safesql($_POST['...']);

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы