@nastyskafomka

ReadBean exec не работает, в чем проблема?

Доброго дня, был составлен такой вот запрос в ReadBeanPHP
$find = R::exec("SELECT * FROM pubs WHERE price >= ? AND price <= ? ORDER BY ? ?",[$_POST['price-min'],$_POST['price-max'],$sortBy,$sortType]);
            error_log ($find);
            foreach ($find as $pp) {
                if ($pp['status'] == 1) {
                    $pubs[] = array(
                        "id" => $pp['p_id'],
                        "title" => $pp['title'],
                        "price" => $pp['price'],
                        "subs" => $pp["subs"]
                    );
                }


Запрос посылается на скрипт через ajax, и возвращает null.

В логах следующее

PHP Warning: Invalid argument supplied for foreach() in ... on line 17
PHP Notice: Undefined variable: pubs in ... on line 27

Если делать запрос из PMA то все нормально работает, пример:
SELECT * FROM pubs WHERE price >= 100 AND price <= 240 ORDER BY title DESC


Как можно решить данную проблему?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
@nastyskafomka Автор вопроса
В общем, почитав, exec - возвращает кол-во найденных записей.
Чтобы их все вывести нужно использовать getAll

В итоге получилось следующее
$find = R::getAll("SELECT * FROM pubs WHERE price >=? AND price <=? ORDER BY {$sortBy} {$sortType}",[$_POST['price-min'],$_POST['price-max']]);
        foreach ($find as $pp) {
            if ($pp['status'] == 1) {
                $pubs[] = array(
                    "id" => $pp['p_id'],
                    "title" => $pp['title'],
                    "price" => $pp['price'],
                    "subs" => $pp["subs"]
                );
            }
        }
        print_r (json_encode ($pubs));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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