Проверка логина в бд

Рейтинг: 3Ответов: 3Опубликовано: 25.09.2014

Здравствуйте! Подскажите, где ошибся:

$login = 'admin';

$db = mysql_connect('localhost', 'mysql', 'mysql');

$result = mysql_query("SELECT * FROM `admin_users` WHERE `login` = '$login' LIMIT 1",$db);
$row = mysql_fetch_array($result);

if ($row[0] == ''){
echo 'нет!';
}

else{
echo 'да!';
}

Не мог добавить комментарий, добавил сюда. andreyqin,

echo 'SELECT id FROM ' . $prefix . '_users WHERE login = "' . $login . '"'; exit;

SELECT id FROM admin_users WHERE login = "admin"

запрос получается верный

Ответы

▲ 5Принят

Попробуйте как-то так:

$db = mysql_connect('localhost', 'mysql', 'mysql');
mysql_select_db('db'); // тут укажите имя вашей базы данных
$login = 'admin';
$result = mysql_query('SELECT id FROM admin_users WHERE login = "' . $login . '"');
if (mysql_num_rows($result) > 0) {
    echo 'Логин занят';
} else {
    echo 'Логин свободен';
}

И откажитесь от использования mysql_ функций в пользу mysqli_ или PDO.

▲ 1

Я делал так :

function db_connect()
    {
        $host = "localhost"; //host
        $user = "root";  // Пользователь
        $pswd = "1234";  //password
        $db = "mega";    // Имя базы данных

        $connection = mysql_connect($host, $user, $pswd);
        mysql_query("SET NAMES utf8");  // Делаем норм.восприятие русского языка
        if(!$connection || !mysql_select_db($db, $connection))
        {
            return false;
        }
        return $connection;  //   Подключаемся.
    }
▲ 1

Я для этого использую COUNT()

$clusers = mysql_fetch_array(mysql_query("SELECT COUNT(1) FROM admin_users WHERE login='admin'"));

echo $clusers[0]." = Кол-во пользователей";

if ($clusers[0] == '0') {
echo "Такого пользователя нет";
} else {
echo "Пользователь есть";
}