首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php服务以json格式获取数据

问Php服务以json格式获取数据
EN

Stack Overflow用户
提问于 2014-08-23 07:37:11
回答 1查看 1.4K关注 0票数 0

我有两个数据库表

  1. main_menu,它有3列id, item_name, img
  2. sub_menu,它有列id, sub_item_name, item_name, add_price, img

现在,当用户单击主菜单时,我正在尝试获取主菜单下的所有子菜单。

例如:

代码语言:javascript
复制
select * from sub_menu where item_name="Cafe"

它应该在Cafe下显示所有的子菜单。

下面是我编写的web服务,用于获取json格式的数据。

代码语言:javascript
复制
    <?php
    $response = array();

    // include db connect class
    require_once __DIR__ . '/db_connect.php';

   // connecting to db
    $db = new DB_CONNECT();

    // check for post data
   if (isset($_GET["item_name"])) {


// get a product from products table
$result = mysql_query("SELECT * FROM sub_menu WHERE item_name ='".$_GET["item_name"]."'");
echo $result;
if (!empty($result)) {
    // check for empty result

    if (mysql_num_rows($result) > 0) {

        $result = mysql_fetch_array($result);
        $sub_menu = array();
        $sub_menu["id"] = $result["id"];
        $sub_menu["item_name"] = $result["item_name"];
        $sub_menu["sub_item_name"] = $result["sub_item_name"];
        $sub_menu["add_price"] = $result["add_price"];
        $sub_menu["img"] = $result["img"];
        // success
        $response["success"] = 1;

        // user node
        $response["sub_menu"] = array();

        array_push($response["sub_menu"], $sub_menu);

        // echoing JSON response
        echo json_encode($response);
    } else {
        // no product found
        $response["success"] = 0;
        $response["message"] = "No sub menu found";

        // echo no users JSON
        echo json_encode($response);
    }
} else {
    // no product found
    $response["success"] = 0;
    $response["message"] = "No menu found";

    // echo no users JSON
    echo json_encode($response);
}
    } else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";

// echoing JSON response
echo json_encode($response);
    }
    ?>

现在的问题是,我只获得第一批数据,它应该显示所有的数据。

查询在mysql中运行良好,我检查过了。问题就在我的php服务的某个地方。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-23 08:02:03

必须在循环中调用mysql_fetch_array(),并将所有行添加到数组中。您只需在单个赋值中复制整个结果行,因为在JSON中使用的字段名与数据库中的字段名相同。

代码语言:javascript
复制
if (mysql_num_rows($result) > 0) {

    $submenu = array();
    while ($result = mysql_fetch_array($result);
        $submenu[] = $result;
    }
    $response["success"] = 1;

    // user node
    $response["sub_menu"] = $all_results;

    // echoing JSON response
    echo json_encode($response);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25459599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档