Подсчет записей с использованием всей строки SQL в RedBeanPHPPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Подсчет записей с использованием всей строки SQL в RedBeanPHP

Сообщение Anonymous »

Похоже, что RedBeanPHP не может обрабатывать строку SQL-запроса, как другие функции, и я пытаюсь найти лучший способ обойти это.
Допустим, у меня есть следующий запрос (упрощенный)

Код: Выделить всё

SELECT id, name, email FROM tbluser WHERE id > 5000;
Вместо того, чтобы возвращать все данные и затем подсчитывать их, я хочу ТОЛЬКО сначала получить счетчик (для целей разбиения на страницы). Я не могу просто передать приведенный выше SQL в R::count(), потому что он не работает с целыми строками.

Код: Выделить всё

//valid
$count = R::count('tbluser', 'WHERE id > 5000');

//not valid
$sql = "SELECT id, name, email FROM tbluser WHERE id > 5000";
$count = R::count($sql);
Я предпочитаю использовать запрос как целую строку SQL, чтобы упростить его повторное использование, но это кажется невозможным. Я могу принять только изменение поля SELECT, но не могу разбить тело на части, поскольку оно слишком сложное.
Поэтому дальше я подумал попробовать просто заменить заголовок выбора на COUNT(*) SQL

Код: Выделить всё

$sql = "SELECT COUNT(*) FROM tbluser WHERE id > 5000";

//this doesn't exactly work, it returns 1 rather than the actual count
$count = R::exec($sql);

//however this DOES work, but is pretty sloppy
$count = R::getAll($sql)[0]["COUNT(*)"];
Любые идеи о том, как заставить работать R::count() (кажется, не поддерживается для целых строк SQL) или как заставить R: :exec(), чтобы вернуть фактическое количество?


Подробнее здесь: https://stackoverflow.com/questions/781 ... redbeanphp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»