Да все тоже вообще #%$%#%# ШОТО ЗАСТУПОРИЛСЯ Давай я коротко что хочу, а ты если надо все что надо дампы то се говори,!!!! Есть МЕТОД в каторый передаем 1 параметр из формы! (это число, номер камеры каторый мы ищем в поле ПОИСКА) там есть sql запрос тоесть ты в поле поиска вбиваешь НАПРИМЕР 10 ......... PHP: $sql = "SELECT {$this->lang}_address, camera_sid FROM ctexts WHERE camera_sid = 10 тоесть находим по базе 10 камеру!!! теперь нам надо УЛУЧШИТЬ ЭТОТ МЕТОД(написать новый пофиг..... я улучшаю) в чем суть то что я выше писал ОН ИЩЕТ ИЗ ВСЕХ СУЩЕСТВУЮЩИХ КАМЕР!!!!!! А НАМ НАДО что бы поиск веденной камеры производился только из ОПРЕДЕЛОННОГО НАБОРА!!!!! расширяю так ДОБОВЛЯЮ В МЕТОД ВТОРОЙ ПАРАМЕТР КАТОРЫЙ ПЕРЕДАЮ В конструкцию IN(1,2,3,4) НАПРИМЕР ДЕЛАЮ ЖЕСТКО ДЛЯ ТЕСТА PHP: public function searchOnMap($search, $cameraTitle, $cam_list) { $sql = "SELECT {$this->lang}_address, camera_sid FROM ctexts WHERE camera_sid = ? AND camera_sid IN(1,2,4,5,6,7,8,9,10)"; } ТОесть вожу например 1 PHP: $sql = "SELECT {$this->lang}_address, camera_sid FROM ctexts WHERE camera_sid = 1 AND camera_sid IN(1,2б3б4б5б6б7б8б9б10)"; ищю 1 камеру из набора допустимых вре работает как надо ТОЕСТЬ ГРОБО ГОВОРЯ ТО ЧТО НУЖНО (ВООБЩЕ ОТЛИЧННО!!!!) теперь вместо IN(1,2,3,4,5) надо сделать типо такое IN($str_id) так вот я уже передавал туда и строку и набор строк и набор цыфр , и имплодил прямо туда и капец!!!!!!! не работает! понятно что надо ДЛЯ ТЕСТА вот МАССИВ каторый передаю в метод PHP: $a = array(1,2,3,4,5,6,7,8,9,10,22); пробавал и вот так PHP: $ids = implode(',', $a); $cameras = $this->cams->searchOnMap($ids); и так $a = array(); foreach ($this->_sss as $k => $v){ $a[] = (int)$v; } и так foreach ($cam_list as $k => $v) { $str .= (int)$v. ","; } $sstr = substr($str, 0, -1); ЛЮБОЕ РЕШЕНИЕ ЧТО ТО Я СОВСЕМ!!!!!!!
"SELECT ru_address, camera_sid FROM ctexts WHERE camera_sid = 1 AND camera_sid IN()"; camera_sid = 1 (1 это значение каторое мы пишим в поле поиска) IN пустой теперь следите за моей мыслю..... жестко ПИШУ IN(1,2,3) - работает! жестко ПИШУ IN('1', '2', '3') - работает! жестко ПИШУ IN("1,2,3") - Не работает! ТОЕСТЬ ЛОГИЧНО ЕСЛИ Я ИЗМЕНЮ жестко вписаные на переменную нечего не измениться $some_var = "1,2,3"; - не работает ПО ИДЕИ ......проверил не работает так как это строка а в базе поля число! $some_var = "'1','2','3'"; - работать по идеи ДОЛЖНО но нет!!!!!!!! даже если я парпшу свой масив, потом каждую ячейку где лежить строка с номером камеры '10' привожу к (int) 10 все равно не работает!!! пробовал!!! 100 схем и так пихал и десяток переборов массива и игра с ковычками типами итд! $array = array(1,2,3,4,5,6,7);// такой мкассив ПРИХОДИТЬ значение это СТРОКИ! (я делал и состроками и инт.....повторюсь) пробовал и так .........my_method_search(param_input_field, $ids= implode(',', $array )) и саму строку sql конкатенировал екранировал переносил все из модели в контролер и даже на марс выносил - ХЕР не работает!! public function searchOnMap($search, $cameraTitle, $cam_list){ ////// if(is_numeric($search)) { $sql = "SELECT {$this->lang}_address, camera_sid FROM ctexts WHERE camera_sid = ? AND camera_sid IN(1,2,3)";//жестко работает $sql = "SELECT {$this->lang}_address, camera_sid FROM ctexts WHERE camera_sid = ? AND camera_sid IN(1,2,3)";// нужно так но не работает, да кстате суть выборки понятен впринцепи.... ПОДХОДИТЬ ЛЮБОЙ ВАРИАНТ ........ $result = $this->getData($sql); ///// } --- Добавлено --- 2017-01-31 18:11:00 EET СООБЩЕНИЕ: Защита от наложения мультитранзакций сейчас включена .........все я пошел во все тяжкие ))))))) вот это может както влиять? (((( $search =1; /// ПЕРЕДАЛОСЬ!!!!!! а вот если строку в IN заменить на переменую то фиг! я уже от обратного и без prepare в тупую $sql = "SELECT * FROM ctexts WHERE camera_sid IN(1,2,3,4,5,6,7,8,9,22) AND camera_sid = $search";
PHP: $values = array(1,2,3,4,5,6,7,8,9,10,22); $in_placeholders = implode(',', array_fill(0, count($values), '?')); $sth = $dbh->prepare("SELECT * FROM ctexts WHERE camera_sid IN({$in_placeholders})"); $sth->execute($values); --- Добавлено --- это ересь: ты пытаешся найти записи где поле одновременно равно А и Б. так не бывает. то есть бывает если А равно Б, иначе никак )))