modExtraManagerController данные из файла getObject empty result
Здравствуйте.
Пробую создать компонент.
В админпанеле сделал форму с кнопкой.
При нажатии на кнопку загружается файл и далее я перебираю его с помощью fgetcsv
Если я делаю просто echo или print_r, то все выводится, но если я пытаюсь из этого результат сделать getObject или $modx->query результат 0 строк. Если я сам вручную впишу критерий поиска, то результат выводит.
Делаю так:
Пожалуйста, скажите как правильно сделать. Спасибо
Пробую создать компонент.
В админпанеле сделал форму с кнопкой.
При нажатии на кнопку загружается файл и далее я перебираю его с помощью fgetcsv
Если я делаю просто echo или print_r, то все выводится, но если я пытаюсь из этого результат сделать getObject или $modx->query результат 0 строк. Если я сам вручную впишу критерий поиска, то результат выводит.
Делаю так:
public function process(array $scriptProperties = array()) {
global $modx;
...
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
$row = 1;
if (($handle = fopen($uploadfile, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
if ($num >= 2) {
$article = $data[0];
$price = $data[1];
echo $article; //ЭТО РАБОТАЕТ
$find_row = $modx->getObject('msProductData', array('article' => $article)); // А это игнорирует article.
if ($find_row) {
echo 'Найдено';
} else {
echo $article; //И тут выводит артикул без проблем
}
}
$row++;
}
fclose($handle);
}
}
}
Если я сделаю просто массив, то из него тоже берется, а вот если делаю выборку из файла — то не работает.Пожалуйста, скажите как правильно сделать. Спасибо
Комментарии: 10
Братцы, помогите. Тоже такая проблема!
Сделайте var_dump вместо echo. Возможно, после артикула в файле стоит пробел — тогда надо воспользоваться функцией trim перед подстановкой в условие.
Здравствуйте. Пробовал. tirm я сейчас дописал, все равно пригодится) Но проблема осталась
Попробуйте так посмотреть, какой SQL-запрос формируется, и что в нём не так:
$q = $modx->newQuery('msProductData');
$q->where(array('article' => $article));
$q->prepare();
echo $q->toSQL();
Да, в запросе видно что подставляется, но когда я делаю
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
результат пустой
А если в PhpMyAdmin этот запрос вставить и попробовать выполнить — будет результат?
Все получилось. Убрал bom. Спасибо
а вот если делаю выборку из файла — то не работает.включите отображение ошибок в начале скрипта
ini_set('display_errors', 1);
ini_set('error_reporting', -1);
и посмотрите возможно у вас ошибка в коде.
да, я так сделал сразу.
Тот код который предложил Илья — работает.
Ну точнее я пока только prepare сделал и там в запросе четко указано article='...'
А вот getObject его игнорирует. Сейчас execute сделаю и посмотрю. 1 минуту
Тот код который предложил Илья — работает.
Ну точнее я пока только prepare сделал и там в запросе четко указано article='...'
А вот getObject его игнорирует. Сейчас execute сделаю и посмотрю. 1 минуту
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.