Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
aktuba
цитировать
Зарегистрирован: 18 Янв 2008 10:24:01 Сообщения: 38
|
Добавлено: 20 Янв 2008 22:57:05 Заголовок сообщения: Проверка записи другой таблицы |
|
|
В базе данных есть темповая таблица - tempusers. В контроллере UsersController мне необходимо проверить, есть ли в темповой таблице запись с определенным значением - никак не могу додумать, как это реализовать. Делаю следующее:
Код: |
$res = $this -> User -> query('SELECT COUNT(*) c FROM tempusers WHERE login="' . $login . '"'); |
а вот как дальше определить, какое значение полученно - не понимаю. $res[0]['c'] не помогает... Может я что не так делаю? |
|
Вернуться к началу |
|
|
Борис
цитировать
Зарегистрирован: 08 Янв 2008 00:26:04 Сообщения: 8
|
Добавлено: 20 Янв 2008 23:21:58 Заголовок сообщения: Re: Проверка записи другой таблицы |
|
|
aktuba писал(а): | В базе данных есть темповая таблица - tempusers. В контроллере UsersController мне необходимо проверить, есть ли в темповой таблице запись с определенным значением - никак не могу додумать, как это реализовать. Делаю следующее:
Код: |
$res = $this -> User -> query('SELECT COUNT(*) c FROM tempusers WHERE login="' . $login . '"'); |
а вот как дальше определить, какое значение полученно - не понимаю. $res[0]['c'] не помогает... Может я что не так делаю? |
Во-первых, "COUNT(*) c" следует заменить на "COUNT(*) AS c".
Во-вторых, что хотите определить? Может проще простым "SELECT *" воспользоваться, а потом проверить возвращаемый результат на false, тогда и дополнительные атрибуты будут сразу получены, если они нужны...
Попробуйте включить "полную" отладку - 3, чтобы видеть, что происходит |
|
Вернуться к началу |
|
|
aktuba
цитировать
Зарегистрирован: 18 Янв 2008 10:24:01 Сообщения: 38
|
Добавлено: 21 Янв 2008 00:27:05 Заголовок сообщения: |
|
|
Цитата: | Во-вторых, что хотите определить? |
У меня 2 таблицы: users (зарегистрированные пользователи) и tempusers (неподтвержденные пользователи). Теперь, когда кто-то еще регистрируется, надо проверить занятость логина и пароля в обеих таблицах, а вот как это сделать... |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 21 Янв 2008 13:23:40 Заголовок сообщения: |
|
|
Цитата: | а вот как это сделать... |
Использовать одну таблицу |
|
Вернуться к началу |
|
|
aktuba
цитировать
Зарегистрирован: 18 Янв 2008 10:24:01 Сообщения: 38
|
Добавлено: 21 Янв 2008 13:24:45 Заголовок сообщения: |
|
|
Цитата: | Использовать одну таблицу |
На это и перешел, но это не верно, т.к. в таблице будет хранится много мусора и, соответственно, будет работать дольше... |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 21 Янв 2008 15:02:32 Заголовок сообщения: |
|
|
Цитата: | На это и перешел, но это не верно |
это верно, потому что это одна сущность - пользователи, различающиеся лишь свойством зарегистрирован/незарегистрирован
Цитата: | в таблице будет хранится много мусора и, соответственно, будет работать дольше |
"сначала сделай чтобы работало, а только потом делай чтобы работало быстро" В© _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
aktuba
цитировать
Зарегистрирован: 18 Янв 2008 10:24:01 Сообщения: 38
|
Добавлено: 21 Янв 2008 17:05:17 Заголовок сообщения: |
|
|
Код: | "сначала сделай чтобы работало, а только потом делай чтобы работало быстро" В© |
Хорошая фраза... Но хотелось бы все-таки понять, как проверить данные в другой таблице. Понять, в каком виде возвращаются данные из $this -> Model -> query() и как их правильно обрабатывать. |
|
Вернуться к началу |
|
|
Борис
цитировать
Зарегистрирован: 08 Янв 2008 00:26:04 Сообщения: 8
|
Добавлено: 21 Янв 2008 19:43:09 Заголовок сообщения: |
|
|
aktuba писал(а): | Понять, в каком виде возвращаются данные из $this -> Model -> query() и как их правильно обрабатывать. |
http://api.cakephp.org/1.2/class_model.html#bca9540af2da0f51f169126653f9987f
Returns:
array Resultset public
если хотите увидеть, что именно, то можете просто вызвать отладочную печать или в отладчике |
|
Вернуться к началу |
|
|
Антон Исайкин Site Admin цитировать
Зарегистрирован: 08 Окт 2007 12:02:56 Сообщения: 150 Откуда: Санкт-Петербург
|
Добавлено: 21 Янв 2008 21:10:45 Заголовок сообщения: |
|
|
aktuba
В php есть крутая функция print_r(), а в CakePHP еще более крутая обвертка над этой функцией pr(). |
|
Вернуться к началу |
|
|
|