2015-05-20 3 views
1

Я пытаюсь проверить свою базу данных, если строка существует, но она всегда возвращает «Идентификатор пользователя уже существует для другого сотрудника», если он существует или нет. Это меня озадачивает, потому что код работал раньше. Последнее изменение, которое я добавил, это сеансы PHP, которые, как я думаю, не нарушат его?Проверка базы данных MYSQL, если существует строка

С помощью сеансов, если эта информация необходима, я начинаю сеанс в верхней части страницы, а если сеанс равен 0, он загружает окно с паролем, когда вводится правильный пароль, он устанавливает сеанс 1 который затем отображает все остальные поля на странице, в том числе один, чтобы добавить сотрудника в таблицу, в котором у меня возникают проблемы.

Вот мой код для полей ввода:

<h1>Add New Employee</h1> 
           <form method="POST"> 
           ID: <input name="IDadd" type="text"> 
           Name: <input name="Nameadd" type="text"> 
           Job: <select name='Jobadd'> 
             <option value='IOS'>IOS</option> 
             <option value='Remarketing'>Remarketing</option> 
             <option value='Computers'>Computers</option> 
             <option value='Beats'>Beats</option> 
             <option value='Inventory'>Inventory</option> 
             <option value='Check-In'>Check-In</option> 
             <option value='Tech'>Tech</option> 
             </select> 
           <input value="Submit New Employee" type="submit" onsubmit="return false" id="newEmployee" name="newEmployee"><br><br></center> 
           </form> 

А вот код, который должен проверять, если он уже существует.

if (isset($_POST['newEmployee'])) { 

          $userId = mysqli_real_escape_string($con, $_POST[ 'IDadd' ]); 
          $userName = mysqli_real_escape_string($con, $_POST[ 'Nameadd' ]); 
          $userJob = mysqli_real_escape_string($con, $_POST[ 'Jobadd' ]); 


           $checkUserID = mysqli_query("SELECT `userId` FROM Employee WHERE `userId`='$userId'"); 
           if (mysqli_num_rows($checkUserId) > 0) { 
            $sql = "INSERT INTO Employee (userId, Name, Job, Week) 
            VALUES ('$userId', '$userName', '$userJob', '$currentWeekIs')"; 
            mysqli_query($con, $sql); 
           } else { 
            echo $userId . " " . $userName . " " . $userJob; 
            echo "<center><br><br><h1>User ID ".$userId." already exists for another employee.</h1></center>"; 
           } 

           } 

Итак, я думаю, мой вопрос в том, почему он всегда возвращает «Идентификатор пользователя уже существует для другого сотрудника»? Или, каковы некоторые альтернативы тому, как я могу решить эту проблему?

+0

Звучит так, как будто это связано с вашими сеансами. Я бы опубликовал этот сегмент вашего кода также –

+0

@SpencerMay Здесь нет ничего, чтобы даже сделать вывод, что OP использует сеансы вообще. –

+0

@MikeBrant 'Последнее изменение, которое я добавил, это сеансы PHP, которые, как я думаю, не сломают его?' –

ответ

1

Ваш запрос не работает, потому что вы не передаете соответствующие параметры mysqli_query(), где вы делаете свой выбор.

Первым параметром должен быть ресурс соединения, а второй - сам запрос. Ознакомьтесь с документацией, убедитесь, что вы просматриваете журналы erros при разработке и включаете обработку ошибок в свой код.

+0

'$ checkUserID = mysqli_query ($ con," SELECT 'userId' FROM Employee WHERE' userId' = '$ userId' ");' еще одна проблема. –

+0

@TimothyLee Хорошо, основываясь на вашем исходном коде, который, безусловно, был ключевой ошибкой. Какие ошибки вы получаете? Рассматривали ли вы обработку случаев, когда mysqli_query() 'возвращает false, чтобы выходить из системы с ошибками при работе с базой данных? –

+0

Я не получаю никаких ошибок, но все еще имею ту же проблему. '$ result =" SELECT * FROM Employee WHERE 'userId' = '$ userId'"; $ checkUserID = mysqli_query ($ con, $ result); \t \t \t \t \t \t \t \t если ($ checkUserID!) { \t \t \t \t \t \t \t \t \t умереть ('Неверный запрос:'. Mysql_error()); \t \t \t \t \t \t \t \t} ' –

Смежные вопросы