![]() |
проверка на наличие
Подскажите как изящнее проверять существуют ли данные в БД ... какбы при реге проверять скажем
емайл .... логин и т.п у меня есть идея но она слишком громоздкая ... может подскажите более изящьный способ ? =) зарание спасибо! |
$sql = "SELECT * FROM users WHERE username='".addslashes($_POST['username'])."' OR email='".addslashes($_POST['email'])."'"; // и тд
$result = mysql_query($sql); if ($result AND mysql_num_rows($result) > 0) { ... типа так?) |
Цитата:
|
BlackSun есиб так.. =( ... нада знать что иммено уже существует ... логин пасс или там ещё чтото =\\ поэтому конструкция получяется грамоздкой =\\
|
мда и чё я раньше не дадумался чёт я туплю последнеевремя :D
$sql = "SELECT `username`,`email` FROM users WHERE username='".addslashes($_POST['username'])."' OR email='".addslashes($_POST['email'])."'"; $result = mysql_query($sql); $fetch = mysql_fetch_assoc($result); if($fetch != array()) { if($fetch['username'] == $_POST['username']) $error = "username alredy exist"; elseif($fetch['email'] == $_POST['email']) $error = "email alredy exist"; } ы =) тему в мусарку плз |
кстати.лучше юзать mysql_real_escape_string
|
Добавляй в конец запроса LIMIT 1
Я так полагаю, что предполагается выборка одной записи, а в твоём варианте мускуль будет перебирать все записи талицы. |
А он и должен перебирать все записи, чтобы найти совпадения. Если алгоритм верный был ДО внедрения процедуры, такая запись будет только одна, если есть совпадения
|
Но без условия LIMIT 1 он будет перебирать записи уже после того, как найдёт нужную, а это лишняя нагрузка на БД.
|
Ставь поле unique, бд при занесении дубликата, возвратит ошибку, парси ее на предмет того, что поле не может быть продублировано -> выноси сообщение пользователю
|
| Время: 03:59 |