синтаксический анализ массива $ _POST в PHP

#php #android #post

#php #Android #Публикация

Вопрос:

Мое приложение для Android отправляет сообщение POST на сервер. Это сообщение в основном содержит выбранные типы кухонь.

На стороне клиента у меня есть что-то вроде :

 ArrayList<String> filterEntries = new ArrayList<String>();
for(int i=0; i<filterEntries.size(); i  ){
    nameValuePairs.add(new BasicNameValuePair("filter" i,filterEntries.get(i)));
 }
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httppost.execute(httppost);
  

Однако, поскольку значение index i может варьироваться от 1 до 8 в зависимости от выбранных элементов, мне нужно реализовать запрос, чтобы он отображал названия ресторанов в зависимости от ТИПА кухни.

Что-то вроде этого. Как я могу добиться этого эффекта:

$query = 'SELECT Name,Short_Loc,Image_Link FROM Restaurant_Info WHERE Type LIKE '"$_POST[filter0]"' OR Type LIKE'"$_POST[filter1]"' ....';

Комментарии:

1. $query — это просто строка. Вы можете создать его так, как хотите. Просто создайте цикл, в котором с помощью isset() вы проверяете, установлен ли определенный $_POST[], и добавляете соответственно. В качестве альтернативы ваш клиент Android может создавать параметры запроса.

2. Также никогда не используйте неаналитизированные переменные $ _POST непосредственно в запросе. Даже если пользователь не устанавливает эти переменные, на самом деле вы должны использовать подготовленные операторы ( php.net/manual/en/mysqli.quickstart.prepared-statements.php ) но, по крайней мере, используйте mysqli_escape_string .

Ответ №1:

Ваше мышление обратное.

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

Для этого и существуют базы данных!

Комментарии:

1. На самом деле большая часть моего приложения в основном основана на Интернете. Я не уверен, как я могу реализовать вашу идею

2. Если он основан на Сети, то в вашем веб-коде вы также должны извлекать / извлекать информацию из базы данных. Это не «идея», так используются базы данных.

3. OP не отправляет данные на свой сервер. Он пытается получить некоторые данные со своего сервера. В его подходе нет ничего плохого.