Flex: Как передать эти параметры моему удаленному сервису PHP? - PullRequest
0 голосов
/ 30 мая 2011

Рассмотрим следующий запрос, который работает в MySql:

SELECT r.restaurantId, name, city FROM restaurant AS r,
restaurant_restaurant_category AS c
WHERE r.restaurantId = c.restaurantId AND categoryId IN (6, 10)
GROUP BY restaurantId, name, city, phone ORDER BY name

Это метод удаленной службы (PHP), который я пытаюсь вызвать:

public function getRestaurantsByCategories($categories) {
$stmt = mysqli_prepare($this->connection,
"SELECT r.restaurantId, name, city FROM restaurant AS r,
restaurant_restaurant_category AS c
WHERE r.restaurantId=c.restaurantId AND categoryId IN (?)
GROUP BY restaurantId, name, city, phone ORDER BY name");
// some other stuff here
}

У меня естьуспешно подключились к этому удаленному сервису из сервисов Flex Data.Что я не могу понять, так это как выполнить вышеупомянутый запрос из Flex.Например, я пытался

var array1:Array = new Array();
array1[0] = 6;
array1[1] = 10;

и пытался

var string1:String = new String("6,10");

вызывать удаленную функцию следующим образом

remoteService.getRestaurantsByCategories(array1);

или около того

remoteService.getRestaurantsByCategories(string1);

и т. Д.

remoteService.getRestaurantsByCategories(array1.join(","));

, но все они возвращают только совпадения для categoryId=6.

Как правильно передать параметры в PHP, чтобы запрос выполнялся дляоба categoryIds?

Спасибо за любую помощь, ребята.

Ответы [ 2 ]

0 голосов
/ 30 мая 2011

Вы пробовали следующее:

  1. попробуйте установить в flex / as3 var string1: String = new String ("6, 10");вместо просто «6,10».Возможно, ваша строка преобразуется в другой тип ... например, int ("6,10") ~ = 6.

  2. Вы пытались принудительно привести приведение к строке$ Categories?

  3. Вы поместили трассировку / эхо на значение $ Categories в php?Вы получаете 6,10?

  4. Можете ли вы попробовать заменить запрос на:

    public function getRestaurantsByCategories($categories) 
    {
        $stmt = mysqli_prepare($this->connection,
           "SELECT r.restaurantId, name, city FROM restaurant AS r,
           restaurant_restaurant_category AS c
           WHERE r.restaurantId=c.restaurantId AND categoryId IN ($categosies)
           GROUP BY restaurantId, name, city, phone ORDER BY name");
        // some other stuff here
    }
    
0 голосов
/ 30 мая 2011

Вы не используете какой-либо механизм удаленного взаимодействия, такой как AMFPHP или ZendAMF. Невозможно вызвать функцию PHP извне, так как это выходит за рамки. Когда скрипт PHP выполняется, он запускает все, что находится снаружи функций, которые затем могут вызывать сами функции.

Тем не менее, я рекомендую вам использовать AMFPHP или ZendPHP для выполнения этой части.

...