[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка на существования поля в базе
masdeft
Здравствуйте! Может где-то на форуме эта тема обсуждается, но я не смог найти.
вопрос: Как проверить существует ли некое поле в базе?
например в случае регистрации. нужно проверить существует ли такой пользователь в базе или нет.
заранее спасибо



Спустя 15 минут, 43 секунды (28.11.2009 - 15:02) sergeiss написал(а):
Так "существует ли поле в базе (в таблице)" или "существует ли определенное значение в поле"?
Судя по словам - первое, а судя по сути - второе.

Спустя 13 минут, 48 секунд (28.11.2009 - 15:16) masdeft написал(а):
второе)

Спустя 8 минут, 35 секунд (28.11.2009 - 15:25) Argnist написал(а):
SELECT * FROM table WHERE user='username' это чтоли?) Если трудно запомнить команды, пользуйтесь PhpMyAdmin, выбирайте действия, смотрите что делает и какой SQL пишет.

Спустя 14 минут, 49 секунд (28.11.2009 - 15:40) DedMorozzz написал(а):
if (isset($result))

Спустя 40 минут, 49 секунд (28.11.2009 - 16:20) Ka4_0k написал(а):
mysql_num_rows? Просто при нормальном запросе, даже если такой строки нету всё равно вернётся true

Спустя 2 минуты, 27 секунд (28.11.2009 - 16:23) sergeiss написал(а):
Цитата (DedMorozzz @ 28.11.2009 - 16:40)
if (isset($result))

Ответ какой-то непонятный... И, похоже, еще и не верный.

PS.
Более правильно будет сначала
Цитата (Argnist @ 28.11.2009 - 16:25)
SELECT * FROM table WHERE user='username'

И затем
Цитата (Ka4_0k @ 28.11.2009 - 17:20)
mysql_num_rows

Спустя 8 минут, 35 секунд (28.11.2009 - 16:31) masdeft написал(а):
всем спасибо =)

Спустя 27 минут, 49 секунд (28.11.2009 - 16:59) DedMorozzz написал(а):
Почему же не верно. делаем запрос на выборку (выше описано), далее сохраняем в переменую, едиственное, что не тока если сущ, а и не равна введённому значению.

Спустя 32 минуты, 36 секунд (28.11.2009 - 17:32) Shturman написал(а):
     if(mysql_query("SELECT COUNT(id) FROM `users` WHERE `username`='Vasya'", $db)
{
...
}

Если количество юзеров с именем Vasya больше 0, то вернется 1 - true.

Как-то так...

Спустя 4 минуты, 54 секунды (28.11.2009 - 17:37) Argnist написал(а):
ниправда, даже если count = 0 выдаст true

обычно делаю if (($res = mysql_query($sql)) && mysql_num_rows($res) > 0) {}

Спустя 3 часа, 41 минута, 56 секунд (28.11.2009 - 21:19) sergeiss написал(а):
Цитата (DedMorozzz @ 28.11.2009 - 17:59)
Почему же не верно. делаем запрос на выборку (выше описано), далее сохраняем в переменую, едиственное, что не тока если сущ, а и не равна введённому значению.

Твое выражение if (isset($result)) непонятное потому, что непонятно, что за переменная $result.
Если предположить, что было выполнено что-то типа $result=mysql_fetch_assoc(....), то выражение if (isset($result)) будет неверным!!! isset проверяет наличие указанной переменной. И она будет существовать!!! Пусть она будет равна false, но это не отсутствие переменной.

Спустя 2 часа, 34 минуты, 44 секунды (28.11.2009 - 23:53) Joker написал(а):
Цитата (sergeiss @ 28.11.2009 - 18:23)
PS.
Более правильно будет сначалаЦитата (Argnist @ 28.11.2009 - 16:25)
SELECT * FROM table WHERE user='username'


И затем Цитата (Ka4_0k @ 28.11.2009 - 17:20)
mysql_num_rows



а если у нас двадцать полей в таблице, зачем нам их все достовать если нам нужно лишь проверить на существование???

Правильнее всё же будет
SELECT COUNT(*) as `count` FROM table WHERE user='username' LIMIT 1

Спустя 8 минут, 22 секунды (29.11.2009 - 00:02) sergeiss написал(а):
Joker - можно и так, если нужно только количество узнать smile.gif Я, на самом деле, не сильно "парил свой мозХ", потому что пусть это делать топикстартер. Главное - ему дали мысль, а он пусть дальше сам думает. Голова же - она не только для того, чтобы шапку носить biggrin.gif
А если ему надо получить какие-то другие поля из этой записи, при условии существования определеной величины в поле... То тогда "мой" вариант как раз хорош будет. И количество проверили, и данные получили.

Спустя 2 минуты, 54 секунды (29.11.2009 - 00:05) Joker написал(а):
Цитата (sergeiss @ 29.11.2009 - 02:02)
если нужно только количество узнать


Нужно узнать не количество а существует ли такая запись!) делать выборку тут без смысленно согласись? мой вариант подходит сюда на все 100% и другого не может быть в данной ситуации. Темболее в том варианте сначало нужно сделать выборку а после один фиг посчитать сколько записей в результате запроса выдало.

Спустя 9 минут, 47 секунд (29.11.2009 - 00:14) sergeiss написал(а):
Цитата (Joker @ 29.11.2009 - 01:05)
делать выборку тут без смысленно согласись? мой вариант подходит сюда на все 100% и другого не может быть в данной ситуации.

Насчет полной выборки я уже сказал
Цитата (sergeiss @ 29.11.2009 - 01:02)
на самом деле, не сильно "парил свой мозХ", потому что пусть это делать топикстартер.



Спустя 2 минуты, 57 секунд (29.11.2009 - 00:17) Joker написал(а):
Цитата (sergeiss @ 29.11.2009 - 02:14)
Насчет полной выборки я уже сказал


Блин как часто бывает после дн сиденья за программ кодом не дочитываю пост до конца, сорри.

Спустя 7 часов, 43 минуты, 18 секунд (29.11.2009 - 08:01) Sylex написал(а):
Цитата (Joker @ 29.11.2009 - 03:05)
Нужно узнать не количество а существует ли такая запись!)


тогда зачем ты считаешь количество?

Цитата (Joker @ 29.11.2009 - 02:53)
SELECT COUNT(*) as `count` FROM table WHERE user='username' LIMIT 1



Спустя 4 минуты, 18 секунд (29.11.2009 - 08:05) Argnist написал(а):
угу, если просто узнать достаточно SELECT id ... и не тратить ресурсы на count )
Быстрый ответ:

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