ext js store/model example.net-将php/mysql转换为.netwebservier/sql

ext js store/model example.net-将php/mysql转换为.netwebservier/sql,php,mysql,sql,web-services,extjs,Php,Mysql,Sql,Web Services,Extjs,下午好, 我正在学习掌握ExtJS的教程,一直在从db检索数据。 这本书一直在使用PHP和MYSQL的例子。。。我不知道。我使用的是.NETWeb服务器和SQL,所以我试图将本教程中的示例转换为如何在.NETWeb服务器上执行此操作 JSON格式的结果应该是这样的 { "data"[ { "id":1", "text" : "menu1", "items": [ {"id": 2", "text: "submenu2 }, { "id":"3", "text":"submenu3" }

下午好,

我正在学习掌握ExtJS的教程,一直在从db检索数据。 这本书一直在使用PHP和MYSQL的例子。。。我不知道。我使用的是.NETWeb服务器和SQL,所以我试图将本教程中的示例转换为如何在.NETWeb服务器上执行此操作

JSON格式的结果应该是这样的

    {
 "data"[
{
"id":1",
"text" : "menu1",
"items": [
{"id": 2",
"text: "submenu2
},
{
"id":"3",
"text":"submenu3"
}
他们给我的php代码如下

php文件1

$permissions=retrievePermissions($userName)$模块= retrieveModules($permissions)$结果=检索菜单选项($modules, $permissions)

php文件2

函数retrievePermissions($userName){

函数retrieveModules($permissions){

函数检索菜单选项($modules,$permissions){

我试图弄清楚如何使用.NETWebService/SQL而不是php/MySQL返回相同的json格式。 它似乎有3个独立的函数,结果数组被用作下一个查询的参数

基础看起来很简单…就像retreivePermissions…这是一个简单的SELECTWHERE语句。 retrieveModules似乎是第一个结果的内部连接。 但最后一个…retrieveMenuOptions,它将两个结果作为参数拉入,并返回结果

这就是我不明白的…我如何才能以相同的JSON结果格式从SQL中提取结果


我讲得通吗?

我有一个使用.NET Web API控制器的示例。不完全是Web服务,但你会明白的。在这里查看:

谢谢,我正在阅读你的示例,但我想我应该解释的是,我下面这本书中的教程给了我一个来自MySQL的嵌套结果……我如何才能实现通过.NETWebService从我的sql数据库中获取相同的嵌套结果
require('../db/db.php');

$sqlQuery = "SELECT p.menu_id menuId FROM User u ";
$sqlQuery .= "INNER JOIN permissions p ON u.groups_id = p.groups_id ";
$sqlQuery .= "INNER JOIN menu m ON p.menu_id = m.id ";
$sqlQuery .= "WHERE u.username = '$userName' ";

$permissions = [];

if ($resultDb = $mysqli->query($sqlQuery)) {
    while($user = $resultDb->fetch_assoc()) {
        $permissions[] =  $user['menuId'];
    }
}

$resultDb->free();
$mysqli->close();

return $permissions; }
require('../db/db.php');

$inClause = '(' . join(',',$permissions) . ')';

$sqlQuery = "SELECT id, text, iconCls FROM menu WHERE menu_id IS NULL AND id in $inClause";

$modules = [];

if ($resultDb = $mysqli->query($sqlQuery)) {
    while($module = $resultDb->fetch_assoc()) {
        $modules[] = $module;

    }
}

$resultDb->free();
$mysqli->close();

return $modules; }
require('../db/db.php');

$inClause = '(' . join(',',$permissions) . ')';

$result = [];

foreach ($modules as $module) {

    $sqlQuery = "SELECT * FROM menu WHERE menu_id = '";
    $sqlQuery .= $module['id'] ."' AND id in $inClause";

    // check if have a child node
    if ($resultDb = $mysqli->query($sqlQuery)) {

        // determine number of rows result set
        $count = $resultDb->num_rows;

        if ($count > 0){

            $module['items'] = array();

            while ($item = $resultDb->fetch_assoc()) {
                $module['items'][] = $item;
            }

        }
        $result[] = $module;
    }
}

$resultDb->close();
$mysqli->close();

return $result;