2015-06-07 2 views
1

Справка с пользователем удаления:PHP система Логин необходима помощь для удаления

Привет Я создаю систему создания пользователя для проекта шахты, я все еще очень новое для PHP, моя проблема заключается в получении пользователя из MySQL базы данных, а затем удалить его, я покажу вам мой код ниже:

  <?php 
      require_once("config/db.php"); 

      if ($login->isUserLoggedIn() == true) { 
       if ($_SESSION['user_perm'] == 1) { 

        //Create Connection 
        $db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
        // Check connection 
        if ($db_connection->connect_error) { 
         die("Connection failed: " . $db_connection->connect_error); 
        } 

        $sql = "SELECT user_name FROM users"; 
        $result = $db_connection->query($sql); 

        if ($result->num_rows > 0) { 
         // output data of each row 
         while($row = $result->fetch_assoc()) { 
          echo $row["user_name"]; 
          $user_name_delete = $row["user_name"]; 
          $_SESSION['user_name_delete'] = $user_name_delete; 
           echo '<a href="deleteuser.php">Delete User</a><br>'; 
          } 

         } 
        } 
        $db_connection->close(); ?> 

на странице deleteuser.php мой код, обратите внимание, что это просто тест:

<?php 
    echo $_SESSION['user_name_delete']; 
?> 

Моя проблема с этим grabbi пользователь, которого вы выбрали для удаления, поскольку на данный момент он выводит только последнего пользователя, захваченного из базы данных.

Любая помощь очень ценится.

+1

https://dev.mysql.com/doc/refman/5.0/en/delete.html – David

+0

@David Привет, David, я знаю, как удалить данные из базы данных, проблема, с которой я сталкиваюсь, - это обнаружение пользователя Я хочу, чтобы его удаляли, поскольку на данный момент только последний пользователь будет удален независимо от того, какой пользователь вы выберете для удаления. – bobbyjane

ответ

1

Это значение:

$_SESSION['user_name_delete'] 

будет содержать только последний пользователь в ваших данных. Потому что вы переписываете его в свою петлю:

$_SESSION['user_name_delete'] = $user_name_delete; 

Короткий ответ ... Не используйте для этого состояние сеанса. (Действительно, вы не должны использовать состояние сеанса для большей части всего, за исключением случаев, когда вам абсолютно необходимо.) Идентификатор пользователя, который должен быть удален, должен быть включен в запрос на удаление пользователя. В этом случае вы можете добавить его в ссылку. Что-то вроде этого:

echo '<a href="deleteuser.php?id=' . $row['user_id'] . '">Delete User</a><br>'; 

(или что вы используете для идентификации пользователя в строке данных.)

Тогда в deleteuser.php вы можете получить это значение из:

$_GET['id'] 

Validate входы , убедитесь, что пользователь имеет право выполнить удаление, а затем использовать это значение в предложении WHERE вашего запроса DELETE.

+0

@bobbyjane: Похоже, кто-то не согласен, так как этот ответ имеет проголосовавший голос :) Но я рад, что смог помочь! – David

-1

Получить идентификатор пользователя и вставить его в запрос на удаление. $id = $db->real_escape_string($_GET['id']); $sql = "delete from users where id = " . $id; затем запустите запрос, чтобы удалить пользователя из базы данных.

+0

Пожалуйста, не рекомендуем использовать SQL-инъекции. Их уже достаточно в мире. – David

+0

@ Давид, я исправил его. Теперь хорошо? Удалите нижестоящий элемент –

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