API удаления элементов для приложения iOS (вызовы PHP для вызова API)Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 API удаления элементов для приложения iOS (вызовы PHP для вызова API)

Сообщение Anonymous »

Вот наша текущая настройка. У нас есть приложение iOS, которое выполняет вызовы API к моему PHP-скрипту, который обрабатывает запрос и запрашивает базу данных через PDO и MySQL. Таким образом, в этом случае существует API update_items.php, которому приложение iOS отправляет значения параметров, и в зависимости от того, обновляет ли пользователь элемент или удаляет элемент, API обрабатывает его соответствующим образом и запрашивает базу данных несколько раз (все в одном запросе). ).

Вот мое затруднительное положение. У меня работает бит обновления, но как я могу использовать тот же API обновления для удаления элемента через запрос POST? Быстрое решение, которое придумал мой iOS-разработчик, заключается в том, что если пользователь проводит пальцем по экрану, чтобы удалить элемент, он отправляет имя элемента как «DELETE» или что-то в этом роде. Это инициирует запрос на удаление записи базы данных. Мне это не нравится, потому что любой может это понять и использовать систему. Например, при редактировании элемента все, что мне нужно сделать, это ввести DELETE для имени элемента, и API обработает его так же, как запрос на удаление. Должен быть лучший способ, и я буду признателен за любые предложения. Ниже приведен мой текущий PHP-код, который обрабатывает вызов API. Однако я предложил одновременно отправлять два вызова API после того, как пользователь нажимает «Готово» для редактирования страницы своего элемента. Один для update.php, если пользователь обновляет элемент, и другой для delete.php, если пользователь решает удалить элемент.

// now check for updating/deleting ingredients for the menu item
if( isset($the_request['id']) ) {
/*
iterate through avalialable values because there could be multiple ingredient ids involved. handle it.
*/
for( $i=0;$i $the_request['id'][$i]
);
// the query
$query = 'DELETE FROM TABLE WHERE id = :id';
break;
default:
// assign passed parameters for query
$params = array(
':name' => $the_request['name'][$i],
':price' => $the_request['price'][$i]
);
// Remove the empty values
$params = array_filter($params, function($param) { return !empty($param); });
// Build an array of SET parameters
$set = array_map(function($key) {
return sprintf('%s = %s', substr($key, 1), $key);
}, array_keys($params));
// don't forget the id
$params[':id'] = $the_request['id'][$i];
// the query
$query = sprintf('UPDATE TABLE SET %s WHERE id = :id', implode(', ', $set));
}
// prepare statement
if( $ingStmt = $dbh->prepare($query) ) {
$ingStmt->execute($params);
} else {
echo json_encode(array('error' => $dbh->errorInfo().__LINE__));
}
}
$ingStmt->closeCursor();
}


Подробнее здесь: https://stackoverflow.com/questions/231 ... e-api-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»