0

我是 PHP 编程新手,对此知之甚少,但我想用它为我的客户端 Android 应用程序提供 Web 服务......

我开始使用 PHP 制作我的第一个 Web 服务,它运行良好,但我想知道如何制作一个包含我需要的所有函数和方法的文件,以及如何从 Android 调用它

谢谢

这是functions.php

    <?php
   function GetAllRest()
    {
    mysql_connect("localhost","root","root");
    mysql_select_db("myhoteldb");
     $sql=mysql_query("SELECT rest_id ,rest_name,cuisine,no_tables,bg_img,rest_logo      FROM  restaurant");
  while($row=mysql_fetch_assoc($sql))
  $output[]=$row;
  print(json_encode($output));
  mysql_close();
}
function GetAllCategory($lang_id,$rest_id)
{
    mysql_connect("localhost","root","root");
    mysql_select_db("myhoteldb");
    $sql=mysql_query("SELECT cat_lang.rowid ,cat_lang.cat_id as _id,lang_id,   cat_name,cat_description from cat_lang  ,menu_category WHERE lang_id= $lang_id  AND  restaurant= $rest_id ");

      while($row=mysql_fetch_assoc($sql))
     $output[]=$row;
     print(json_encode($output));
      mysql_close();

  }



   ?>

和 URL http://localhost/mywebservices.php?op=GetAllCategory&lang_id=1&rest_id=1

我现在得到了这个错误

   Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in      

C:\xampp\htdocs\functions.php 第 22 行

   Notice: Undefined variable: output in C:\xampp\htdocs\functions.php on line 24
    null
4

2 回答 2

1

作为一个想法,我建议在您的 url 中包含希望运行的函数名称。然后,获取该函数名称和参数,将它们传递给 php

call_user_func_array()

功能。

这是函数处理程序的一个非常基本的想法:

您的请求 URL 如下所示:

http://www.mysite.com/webservice.php?op=CallFunctionOne&param_a=test&param_b=test2

这是将调用路由到函数的处理程序:

require_once("./functions.php");

if(!empty($_SERVER["QUERY_STRING"])){
    $query_str = stripslashes($_SERVER['QUERY_STRING']);
    parse_str($query_str,$args);
    $op = array_shift($args);
    if(is_callable ($op)){
        call_user_func_array($op,$args);
    }
    else{
        echo "Handler error.<br />";
        echo $op . " function is not callable.";
    }
}

functions.php 文件将包含您的函数。希望它会给一些想法。

于 2012-04-09T07:35:19.447 回答
1

如果您了解 PHP,那么我假设您会了解 HTML。

PhoneGap 允许您使用 HTML、Javascript 和 CSS 在 Android 上运行应用程序。http://phonegap.com/start

使用 Javascript,您可以向您的 web php 文件发出页面请求。

这是一个 jQuery 示例

<script>
$.ajax({
  url: 'http://example.com/myfile.php',
  dataType: 'json',
  success: function(data) {
    alert(data.rest_name); // do whatever you want with the json response
  }
});
</script>

要启用跨域,您需要将其添加到 php 文件头中(不确定应用程序是否需要跨域验证)

header('Access-Control-Allow-Origin: *');
于 2012-04-09T08:28:50.060 回答