Помогите с sql запросом на php

Discussion in 'PHP' started by comeoff, 16 Mar 2017.

  1. comeoff

    comeoff New Member

    Joined:
    10 Mar 2008
    Messages:
    89
    Likes Received:
    3
    Reputations:
    0
    Ребят кто в php, как в родном языке, помогите пожалуйста мне на php написать код запросов в БД, что-то сам пока не осиливаю, учусь.

    база USERTEAM
    таблица KEYS
    HTML:
    (ID, KEY, STATUS)
    (1, 11111-AAAAA-22221-XXXXX, 1),
    (2, 11112-AAAAX-22222-AXXXX, 1),
    (3, 11113-AAAXX-22223-AAXXX, 0),
    (4, 11114-AAXXX-22224-AAAXX, 0),
    (5, 11115-AXXXX-22225-AAAAX, 0),
    (6, 11116-XXXXX-22226-AAAAA, 0);
    
    таблица USERS
    HTML:
    (ID, NAME, EMAIL, ORDER_ID, ACC_ID, KEY, PHONE, SKYPE, MID)
    (1, Александр Фибо, [email protected], 200199, 908990, 11111-AAAAA-22221-XXXXX, 8-800-900-1122, alexfibo, 2),
    (2, Сергей, [email protected], 201339, 1238050, 11112-AAAAX-22222-AXXXX, 3, 3, 3);
    

    со страницы activate.php в форме методом POST отправляются данные на check.php: Имя(*), E-mail(*), Номер заказа(*), Номер аккаунта(*), ключ(*), телефон, скайп, согласен(2)/не согласен(3)(*) ответ на вопрос. ((*)-обязательные поля).

    нужно взять отправленный ключ из поля "ключ" и найти его в таблице KEYS. Если ключ не найден, вернуть ошибку "такой ключ не найден" Если ключ в таблице KEYS найден, записать в переменную $status_result информацию из столбца STATUS таблицы KEYS по найденному ключу.

    Сделать проверку: если в переменной $status_result находится 1, то вернуть ошибку "этот ключ уже использован"; если в переменной $status_result находится 0, открываем таблицу USERS и записываем туда данные.

    Для строки ID у меня используется атрибут AUTO_INCREMENT, в таблицу USERS пишем; ID(AUTO_INCREMENT), Александр Пример, [email protected], 200193, 902990, 11113-AAAAA-22221-XXXXX, 8-800-900-1122, alexexamp, 2 (если не обязательные поля были не заполнены, записать туда 3)

    Заранее огромнейшее спасибо. А если еще времечко будет код чуть-чуть прокомментить, вообще будет здорово.
     
  2. bologer

    bologer Member

    Joined:
    25 Nov 2016
    Messages:
    62
    Likes Received:
    18
    Reputations:
    3
    PHP:
    $sql tvoyaSQLFunc('SELECT COUNT(*) as count FROM `KEYS` WHERE `key`="'$key .'"');
    Потом результат запроса нужно записать в переменную, чтобы потом

    PHP:
    var_dump($sql);
    Смотришь потом какой пришел ответ. В ответе должен быть массив, в массиве должна быть позиция $sql[0]['count']. Точную позицию после вывода var_dump() можешь посмотреть.

    Если count равен 1 или более, значит key существует. Желательно, чтобы одному, иначе у тебя больше чем 1 ключ который ты ищешь.

    В итоге у тебя может быть отдельная функция, которая проверяет наличие ключа в базе KEYS (замени ее на себя как удобно):
    PHP:
    function keyExists($key) {
        
    $sql tvoyaSQLFunc('SELECT COUNT(*) as count FROM `KEYS` WHERE `key`="'$key .'"');

        return 
    $sql[0]['count'] >= 1;
    }
    Если я конечно правильно тебя понял.

    Какие данные?
     
  3. comeoff

    comeoff New Member

    Joined:
    10 Mar 2008
    Messages:
    89
    Likes Received:
    3
    Reputations:
    0
    так те, что с activate.php на check.php передавались POST'ом из формы