У меня появилась такой вопрос:
Можно ли использовать mysql_num_rows(); несколько из одного mysql_query(); ?
Пример:
$query = mysql_query("SELECT * FROM user WHERE
`login`='".@mysql_real_escape_string($_POST['login'])."' or
`mail`='".@mysql_real_escape_string($_POST['login'])."' or
`password`='".@mysql_real_escape_string($_POST['password'])."'
");
if(mysql_num_rows($query))
{
if(mysql_num_rows($query))
{
// Пароль верный и тут запускаем сессию
}
else
{
echo 'Пароль неверный';
}
}
else
{
echo 'Логин или email не существует';
}
Спустя 19 минут, 21 секунда (14.11.2011 - 10:06) imbalance_hero написал(а):
Ramzil_Nixon
Функция всегда возвращает результат, в данном случае ЧИСЛО (сколько раз), что тебе мешает самому попробовать через echo ?
К тому же твоя строчка является абсурдной.
Функция всегда возвращает результат, в данном случае ЧИСЛО (сколько раз), что тебе мешает самому попробовать через echo ?
К тому же твоя строчка является абсурдной.
Спустя 2 минуты, 5 секунд (14.11.2011 - 10:08) l@pteff написал(а):
Скорее всего, здесь нет необходимости делать выборку по всей таблице, лучше так:
По сабжу: какова цель манипуляций с mysql_num_rows()? Скрипт ведь просто проверяет правильность введенных данных?
$query = mysql_query("SELECT `login`, `password`, `mail` FROM user WHERE
`login`='".@mysql_real_escape_string($_POST['login'])."' or
`mail`='".@mysql_real_escape_string($_POST['mail'])."' or
`password`='".@mysql_real_escape_string($_POST['password'])."'
");
По сабжу: какова цель манипуляций с mysql_num_rows()? Скрипт ведь просто проверяет правильность введенных данных?
Спустя 2 минуты, 49 секунд (14.11.2011 - 10:11) imbalance_hero написал(а):
Собака то перед mysql_real_escape_string ЗАЧЕМ?
В программировании действует приоритет скобок:
(а или б) И В, значит ав, или бв.
А или б или в - значит а, или б, или в!
В программировании действует приоритет скобок:
(а или б) И В, значит ав, или бв.
А или б или в - значит а, или б, или в!
Спустя 4 минуты, 25 секунд (14.11.2011 - 10:15) Ramzil_Nixon написал(а):
Цитата (l@pteff @ 14.11.2011 - 07:08) |
Скорее всего, здесь нет необходимости делать выборку по всей таблице, лучше так |
В случае того если пароль и логин совпали у меня там еще есть некоторые данные которые мне нужно в сессию присваивать, вот по этому и (*).
Цитата (imbalance_hero @ 14.11.2011 - 07:11) |
Собака то перед mysql_real_escape_string ЗАЧЕМ? |
Я по примеру регистрации сделал, а там они есть, вот по этому и ставил
Спустя 6 минут, 7 секунд (14.11.2011 - 10:21) Michael написал(а):
Цитата |
У меня появилась такой вопрос: Можно ли использовать mysql_num_rows(); несколько из одного mysql_query(); ? |
Это же проверить самому в скрипте элементарно
А вообще в переменную для таких случаев данные записываются.
Спустя 4 минуты, 1 секунда (14.11.2011 - 10:25) Renden написал(а):
Ramzil_Nixon, у тя в запросе написано "выбрать все где логин=логин или пароль=пароль или емеил=емаил" А надо так "выбрать логин, пароль, емаил где (логин=логин или емаил=емаил) И пароль=пароль", т.е :
а то получается если чувак введет просто логин, то он зайдет без пароля :)..
$query = mysql_query("SELECT login,mail,password FROM user
WHERE (
`login`='".mysql_real_escape_string(trim($_POST['login']))."' OR
`mail`='".mysql_real_escape_string(trim($_POST['login']))."'
) AND`password`='".mysql_real_escape_string(trim($_POST['password']))."'");
а то получается если чувак введет просто логин, то он зайдет без пароля :)..
Спустя 5 минут, 27 секунд (14.11.2011 - 10:31) l@pteff написал(а):
Цитата |
В случае того если пароль и логин совпали |
Ну так и укажи AND вместо OR
$query = mysql_query("SELECT * FROM user WHERE
`login`='".mysql_real_escape_string($_POST['login'])."' AND
`mail`='".mysql_real_escape_string($_POST['mail'])."' AND
`password`='".mysql_real_escape_string($_POST['password'])."'
");
if (mysql_num_rows(query)) {// Данные указаны верно и тут запускаем сессию}
else {echo 'Вернитесь назад и закончите ввод';}
Если же мэйл нужно как-то отдельно обрабатывать, то под него напиши ещё один запрос с отдельной проверкой mysql_num_rows()
Спустя 3 минуты, 14 секунд (14.11.2011 - 10:34) Ramzil_Nixon написал(а):
) AND
Ты мне скажи откуда взялся эта скобка рядом с AND :D
Спустя 59 секунд (14.11.2011 - 10:35) Ramzil_Nixon написал(а):
Цитата (l@pteff @ 14.11.2011 - 07:31) |
Если же мэйл нужно как-то отдельно обрабатывать, то под него напиши ещё один запрос с отдельной проверкой mysql_num_rows() |
По ходу так и придется сделать, только для пароля
Спустя 4 минуты, 42 секунды (14.11.2011 - 10:40) Renden написал(а):
Ramzil_Nixon
присмотрись внимательнее она взялась после..
присмотрись внимательнее она взялась после..
Цитата |
WHERE ( |
Я тебе написал как надо, что ты голову ломаешь?
Спустя 4 минуты, 55 секунд (14.11.2011 - 10:44) Ramzil_Nixon написал(а):
Renden
А что лучше, после WHERE скобками писать или без?
А что лучше, после WHERE скобками писать или без?
Спустя 2 минуты (14.11.2011 - 10:46) Ramzil_Nixon написал(а):
Цитата (Renden @ 14.11.2011 - 07:40) |
что ты голову ломаешь? |
Голову ломаю потому, что хочу понять что делает каждый сивол, ведь в будущем пригодиться
Спустя 1 минута, 38 секунд (14.11.2011 - 10:48) Renden написал(а):
Ramzil_Nixon
Вплане? Скобки это логика, я написал же тебе выше запрос по по русски для примера...
Вплане? Скобки это логика, я написал же тебе выше запрос по по русски для примера...
Спустя 4 минуты, 23 секунды (14.11.2011 - 10:53) Ramzil_Nixon написал(а):
Цитата (Renden @ 14.11.2011 - 07:48) |
Вплане? Скобки это логика, я написал же тебе выше запрос по по русски для примера... |
Щас испробую все что тут написано
Спустя 7 минут, 45 секунд (14.11.2011 - 11:00) linker написал(а):
Ответ тут один - нельзя.
Спустя 4 минуты, 5 секунд (14.11.2011 - 11:04) Ramzil_Nixon написал(а):
Цитата (linker @ 14.11.2011 - 08:00) |
Ответ тут один - нельзя. |
Значить придется создать отдельный запрос для сверки пароля?
Спустя 6 минут, 34 секунды (14.11.2011 - 11:11) linker написал(а):
Я попутал функции, можно, тока нифига оно тут не нужно
$query = mysql_query($sql);твой запрос ожидаемо вернёт либо 1-у запись, либо ничего, поэтому нет никакого резона mysql_num_rows().
if($user = mysql_fetch_assoc($query))
{
echo 'ура, юзверь есть ' . $user['login'];
}
else
{
echo 'Логин или email не существует';
}
_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...