Как получить данные конкретного идентификатора в MySQL, используя Angularjs - PullRequest
0 голосов
/ 19 мая 2019

У меня есть веб-интерфейс на основе PHP angularjs, в котором я должен извлекать данные определенного пользователя для редактирования, когда они вошли в систему с помощью angular

все, что я могу сделать, это ng-repeat, которое выбирает все строки всех идентификаторов

файл controller.js

var crudApp = angular.module('crudApp',[]);
crudApp.controller("DbController",['$scope','$http', function($scope,$http){

  // Function to get employee details from the database
  getInfo();
  function getInfo(){
    // Sending request to EmpDetails.php files
    $http.post('databaseFiles/Details.php').success(function(data){
      // Stored the returned data into scope
      $scope.details = data;
    });
  }

файл index.php

<tr ng-repeat="detail in details| filter:search_query">
    <td>{{$index + 1}}</td>
    <td>{{detail.trainer_name}}</td>
    <td>{{detail.trainer_team}}</td>
    <td>{{detail.trainer_code}}</td>
    <td>
        <button class="btn btn-warning" ng-click="editInfo(detail)" title="Edit"> 
            <span class="glyphicon glyphicon-edit"></span>
        </button>
    </td>
    <td>
        <button class="btn btn-danger" 
                ng-click="deleteInfo(detail)" title="Delete">
            <span class="glyphicon glyphicon-trash"></span>
        </button>
    </td>
</tr>

Details.php

<?php
// Including database connections
require_once 'database_connections.php';
// mysqli query to fetch all data from database
$query = "SELECT * from pokedstats";
$result = mysqli_query($con, $query);
$arr = array();
if(mysqli_num_rows($result) != 0) {
while($row = mysqli_fetch_assoc($result)) {
$arr[] = $row;
}
}
// Return json array containing data from the databasecon
echo $json_info = json_encode($arr);
?>

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

1 Ответ

0 голосов
/ 19 мая 2019

Используйте оператор if в ваших методах editInfo и deleteInfo, чтобы проверить разрешение пользователя. Вот некоторый псевдокод, который дает вам идею:

$scope.permissionLevelRequired = 3;
$scope.userPermission = 1; // Get this from the database instead

$scope.editInfo(detail) {
  if ($scope.userPermission >= $scope.permissionLevelRequired) {
    // Make changes to `detail`
    ...
  }
}

$scope.deleteInfo(detail) {
  if ($scope.userPermission >= $scope.permissionLevelRequired) {
    // Make changes to `detail`
    ...
  }
}

Это только проверка на стороне клиента, и она будет работать для вашего интерфейса, но ее легко взломать. Возможно, вы захотите проверить разрешения и на сервере, прежде чем вносить изменения в базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...