[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с проверкой существующего юзера в MySQL
ANoct
Здрасте ) Пытаюсь тут освоить SQL+PHP
Возник вопрос:
PHP
$sql "SELECT * FROM users where username='".$_POST["name"]."'";
      
$result mysql_query($sql);
 if (!
$result)
      {

        
$sql "insert into users (username, email, password) values('".$_POST["name"]."', '".$_POST["email"]."', '".$pass[0]."')";
        
$result mysql_query($sql);

        if (!
$result){
            echo 
"It's entered!";
        } else {
            echo 
"Don't entered: ".mysql_error();
        }
      }

      else
      {
         echo 
"There is already a user with that name: <br />".$_POST['name']."<br />";
         
$sqlAll "SELECT * FROM users";
         
$resultsAll mysql_query($sqlAll);

      }


Этот кусок кода отвечает за проверку наличия пользователя (есть он в базе или нет). Так вот, в любом случае, даже когда в базе никого нет, он говорит:
"There is already a user with that name:", то есть идет в else.
Почитав про mysql_query() я подумал, ведь запрос выполняется верно, следовательно $result == true, таким образом "истинное" условие он выполнять и не будет. Скажите, я прав, или здесь проблема в другом? Если прав, как проверить наличие пользователя в базе?
Еще вопрос:
Цитата
"Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса"
что за указатель возвращает функция?




Спустя 13 минут, 19 секунд (7.07.2009 - 10:20) Oyeme написал(а):
Своим условием ты проверяешь существует ли переменная или нет..

PHP
$num_rows mysql_num_rows($result); 

if(
$num_rows 0) {

//true...
}

else {
//false

}

Подсчитывает количество строк.
Елси > 0 то имеется и соответственно если не нашёл то 0.

Спустя 7 минут, 35 секунд (7.07.2009 - 10:28) ANoct написал(а):
Гм... Спасибо. Вот только, я всегда думал, что существование переменной проверяется функцией isset()?

Спустя 16 минут, 28 секунд (7.07.2009 - 10:44) twin написал(а):
А что скажет этот кусок кода, если ему написать такое имя: O'Raly?

Спустя 4 минуты (7.07.2009 - 10:48) Oyeme написал(а):
Ты проверяешь результат выполнения.
True в случаи успешного выполнения запроса ,а вот если ошибка то в этом
случаи false.

В твоё случаи запрос работает верно, после чего нашёл он или не нашёл совпадения будет = true(запрос выполнился)







Спустя 26 минут, 48 секунд (7.07.2009 - 11:15) ANoct написал(а):
twin, Тоже и скажет. А должно было быть что-то специфическое?

Спустя 3 минуты, 45 секунд (7.07.2009 - 11:19) ANoct написал(а):
Да-да... я это давно уже понял.
Цитата
Почитав про mysql_query() я подумал, ведь запрос выполняется верно, следовательно $result == true, таким образом "истинное" условие он выполнять и не будет.


Остался лишь один вопрос:
Цитата
что за указатель возвращает функция?

Спустя 20 минут, 35 секунд (7.07.2009 - 11:40) ANoct написал(а):
еще, если я правильно понимаю, может использоваться для проверки функция mysql_fetch_row()
Быстрый ответ:

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