2014-10-14 4 views
0

Я пытаюсь обновить таблицу базы данных, чтобы изменить поле при входе пользователя в систему. Когда пользователь вводит правильную информацию, выполняется запрос на изменение поля от 0 до 1. Однако этого не происходит. Я предполагаю, что мое заявление запроса неверно. Может ли кто-нибудь объяснить мне, что я сделал не так с утверждением и что я должен сделать, чтобы исправить это?Изменение поля базы данных при входе пользователя в учетную запись

<?php 
    session_start(); 
    require("../includes/header.php"); 
    if($_SERVER["REQUEST_METHOD"] == "POST"){ 
     $p_num = $_POST["username"]; 
     $pwd = $_POST["password"]; 

     $query = "SELECT * FROM $user_table"; 
     $result = mysqli_query($connect, $query); 
     while($row = mysqli_fetch_assoc($result)){ 
      $user_id = "{$row['user_id']}"; 
      $user_name = "{$row['user_name']}"; 
      $password = "{$row['password']}"; 
      $image = "{$row['image']}"; 
      $email = "{$row['email']}"; 
      $program = "{$row['program']}"; 
      $role = "{$row['role']}"; 
      $logged_in = "{$row['logged_in']}"; 

      if(($user_id == $p_num) && ($pwd == $password)){ 
       $_SESSION["id"] = $user_id; 
       $_SESSION["user"] = $user_name; 
       $_SESSION["program"] = $program; 
       $_SESSION["pass"] = $password; 
       $_SESSION["image"] = $image; 
       $_SESSION["email"] = $email; 
       $_SESSION["role"] = $role; 
       $_SESSION["logged in"] = $logged_in; 

       mysqli_query($connect, "UPDATE '{$user_table}' SET logged_in = 1 WHERE user_id = '{$p_num}'"); 

       header("Location: ../pages/instructor.php"); 
      } 
      else{ 
       header("Refresh: 1; URL=../index.php"); 
      } 
     } 
    } 
?> 
+0

Вы уверены, что в '$ p_num = $ _POST [" username "];' и 'if (($ user_id == $ p_num)'? – zarkone

+3

почему вы зацикливаете всех пользователей, вместо этого попробуйте использовать, где закрыть и получить пользователя вы хотите, и до этого, пожалуйста, отлаживайте значение $ user_id после этого оператора $ user_id = "{$ row ['user_id']}"; –

+0

zarkone, да, потому что сценарий входа в систему отлично работает. AbdullaChozhimadathil, делая где предложение в выражении SQL будет делать то же самое, что и оператор if. Кроме того, мне нужно получить другие значения из базы данных, когда пользователь входит в систему, чтобы перейти на другую страницу, поэтому я все время прокручиваю все –

ответ

0

Я действительно понял это сам. Я просто проверял неправильные значения в инструкции sql.

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