[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: преобразование типа данных
Reh
Ночи доброй всем неспящим! подскажите можно ли получать данные от агрегатной функции типа int? Если да то как это сделать? А то у меня количество строк в таблице в string приходит.


$requestTest = core::$database->query_db_array("SELECT count(*) FROM `actionsUser` ");
var_dump($requestTest);


array(1) { ["count(*)"]=> string(4) "2564" }
twin
Что запросили, то и приходит. Все от запроса зависит тут.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Valick
$requestTest = core::$database->query_db_array("SELECT count(*) FROM `actionsUser` ");
$requestTest = (int)$requestTest;
var_dump($requestTest);


_____________
Стимулятор ~yoomoney - 41001303250491
Reh

Цитата
$requestTest = core::$database->query_db_array("SELECT count(*) FROM `actionsUser` ");
$requestTest = (int)$requestTest;
        var_dump($requestTest);


так мы получим int(1);


Цитата
Что запросили, то и приходит. Все от запроса зависит тут.


А как мне запросить чтобы получить такой результат - array(1) { ["count(*)"]=> int(2654) }?
Valick
Reh, ну во первых РНР сам преобразует типы там где ему надо, а во вторых неужели нельзя немного подумать?
$requestTest = core::$database->query_db_array("SELECT count(*) FROM `actionsUser` ");
$requestTest = (int)$requestTest["count(*)"];
var_dump($requestTest);


_____________
Стимулятор ~yoomoney - 41001303250491
Reh
Valick, уже давно думаю.

И вопрос мой заключается именно в том что как получить данные в нужном типе.
Как потом преобразовать я знаю.

Например есть запрос


static function councils($where, $limit, $offset){

return $result = "SELECT c.id council_id, c.user_id, COUNT(ses.user_id) presence, u.nikName, am.longname modify,
abr.name brand_car, amod.name model, ua.online, c.rating, d.name detail, d.id detail_id,
s.name section, s.id section_id,p.name subsection, b.id brand_id, b.name brand, c.id, c.council,
SUM(karmaNegative), SUM(karmaPositive), u.user_pic_path photo_user
FROM councils_details c
LEFT OUTER JOIN users u
ON c.user_id = u.user_id
LEFT OUTER JOIN users_authorization ua
ON u.user_id = ua.user_id
LEFT OUTER JOIN session ses
ON u.user_id = ses.user_id
INNER JOIN details_detail d
ON c.detail_id = d.id
INNER JOIN details_section s
ON d.section_id = s.id
INNER JOIN details_subsection p
ON d.subsection_id = p.id
INNER JOIN details_brands b
ON c.details_brands_id = b.id
LEFT OUTER JOIN karma k
ON c.id = k.advice_id
INNER JOIN auto_modify am
ON am.id = c.modify_id
INNER JOIN auto_brands abr
ON am.brand_id = abr.id
INNER JOIN auto_models amod
ON am.model_id = amod.id
WHERE
$where
GROUP BY c.id
ORDER BY c.rating DESC, c.id DESC
LIMIT
$limit
OFFSET $offset";


И мне не удобно сначала преобразовать в int, потом что то делать с этими данными.
И вот аозник вопрос - можно ли их сразу получить а int, а не sptring?
kaww
Цитата (Reh @ 12.02.2015 - 09:10)
И вот аозник вопрос - можно ли их сразу получить а int, а не sptring?
Reh
kaww, спасибо!
То что надо.
sergeiss
Reh, если честно, то я не понял, в чем у тебя проблема. В ПХП возможно автоматическое преобразование типа переменной в зависимости от контекста. Если ты уверен, что у тебя там число, то просто используй полученную переменную в числовых выражениях.

Вот тебе в качестве инфы для размышления:
$a = '10';
$b = '20';

echo ($a > 5 ? 'a gt 5': 'a lt 5').'<br>';

echo ($b < 30 ? 'b gt 30': 'b lt 30').'<br>';

echo ($a+$b).'<br>';

echo $a.$b.'<br>';



_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Reh
Цитата
если честно, то я не понял, в чем у тебя проблема

Проблема в том что это число передается в шаблонизатор в шаблоне стоит условный оператор и если это не числовой тип, то условие не работает.

Цитата
то просто используй полученную переменную в числовых выражениях

вот и не получается ее просто использовать, нужно перед передачей в шаблон к int привести.
И я чтобы этого избежать подумал о том чтобы мне ее сразу в int получить.
sergeiss
Цитата (Reh @ 12.02.2015 - 16:10)
вот и не получается ее просто использовать,

Почему не получается???

Цитата (Reh @ 12.02.2015 - 16:10)
нужно перед передачей в шаблон к int привести

$a='10'; // строка

$a_int = $a*1; // целое


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Valick
Цитата
в шаблоне стоит условный оператор и если это не числовой тип, то условие не работает

а довести до ума шаблонизатор?

_____________
Стимулятор ~yoomoney - 41001303250491
Reh
Цитата
а довести до ума шаблонизатор?

Я только начал понимать как им пользоваться, и то не до конца((
Может быть ошибка от того что не так что то делаю.
Мне тут соседского ребенка на час сбагрили + свой, как заберут сразу отпишусь!
Reh
Цитата
Почему не получается???

Переписал шаблон заново и все получилось!
Косяк был где то в коде, теперь автоматически число в string преобразовывает в обычное число.
sergeiss спасибо!
sergeiss
Цитата (Reh @ 12.02.2015 - 17:38)
sergeiss спасибо!

"Спасибо сгущёнкой не пахнет!" (с) народная мудрость user posted image

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.