За последние 24 часа нас посетили 30405 программистов и 1754 робота. Сейчас ищут 836 программистов ...

проверить поля на совпадение и вытащить id из MySQL

Тема в разделе "PHP и базы данных", создана пользователем Punk T-34, 6 янв 2011.

  1. Punk T-34

    Punk T-34 Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Украина
    Привет,
    я в PHP не то что новичок, а вообще почти никакой. Пока что всё, что делаю — это беру примеры кода и переделываю под себя.

    У меня есть (относительно) простая функция для авторизации на сайте (она работает):
    PHP:
    1. // ---
    2. // login, check user
    3. // ---
    4. function login($username,$pass)
    5. {
    6.    GLOBAL $db,$table;
    7.    $username = trim($username);
    8.    $pass = md5(trim($pass));
    9.    $query = mysql_query("SELECT * FROM $table WHERE login = '$username' AND password = '$pass'");
    10.    return mysql_num_rows($query);
    11. }
    Но я хочу передать (во флеш-сайт) переменную с соответствующим id юзера (это не работает):
    PHP:
    1. // ---
    2. // login, check user
    3. // ---
    4. function login($username,$pass)
    5. {
    6.    GLOBAL $db,$table;
    7.    $username = trim($username);
    8.    $pass = md5(trim($pass));
    9.    $query = mysql_query("SELECT * FROM $table WHERE login = '$username' AND password = '$pass'");
    10.    return mysql_num_rows($query);
    11.    echo "userid=" . $data['id'] . "&username=" . $data['name'];
    12. }
    Ещё, вместо 11-й строчки (здесь), пробовал писать такое:
    PHP:
    1. $var = "SELECT * FROM $table WHERE id LIKE string"
    2. echo "userid=" . $var;
    Но это тоже не работает :(
    Подскажите, что я делаю не так?
    Задача: при запросе php-файла из флеш-сайта, при удачной авторизации, вывести id и имя пользователя в виде текста:
    Код (Text):
    1. userid=12345&username=Vasja
    Заранее спасибо!
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
  3. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Перед
    Код (Text):
    1. echo "userid=" . $data['id'] . "&username=" . $data['name'];
    Добавь
    Код (Text):
    1. $data = mysql_fetch_assoc($query);
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    на этой строчке прекращается выполнение функции.

    результат от запроса нужно обработать с помощью

    $data = mysql_fetch_array($query)

    , а затем выводить через

    echo "username=" . $data['login'];
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Кстати! Не обратил внимания :)
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    sobachnik
    это было адресовано автору топика, т.к. когда я писал своё сообщение, твоего ещё не было :)
     
  7. Punk T-34

    Punk T-34 Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Украина
    что-то не срабатывает.
    В файле error_log причина: syntax error, unexpected T_ECHO
    ...хотя с синтаксисом, вроде, всё правильно
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Видимо, ты скопировал строчку от Gromo как она есть - без точки с запятой на конце.
     
  9. Punk T-34

    Punk T-34 Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Украина
    Да, ошибка была в этом.
    А вот решение проблемы:
    PHP:
    1. function login($username,$pass)
    2. {
    3.    GLOBAL $db,$table;
    4.    $username = trim($username);
    5.    $pass = md5(trim($pass));
    6.    $query = mysql_query("SELECT * FROM $table WHERE login = '$username' AND password = '$pass'");
    7.    $data=mysql_fetch_array($query);
    8.    $vars="user=".mysql_num_rows($query)."&userid=".$data['id']."&username=".$data['name'];
    9.    return $vars; //возвращает user=1&userid=40&username=tester
    10. }
    Спасибо за помощь!