Здрасте ) Пытаюсь тут освоить 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()