Вот наша текущая настройка. У нас есть приложение 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
API удаления элементов для приложения iOS (вызовы PHP для вызова API) ⇐ IOS
Программируем под IOS
1735465799
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();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/23140982/delete-items-api-for-ios-app-calls-to-php-for-the-api-call[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия