首页 新闻 会员 周边 捐助

PHP 翻译成C#.net

0
悬赏园豆:80 [已解决问题] 解决于 2008-12-17 16:56

<?php
mysql_pconnect("localhost", "root", "") or die("Could not connect");
mysql_select_db("demo") or die("Could not select database");

$start = ($_REQUEST["start"] == null)? 0 : $_REQUEST["start"];
$count = ($_REQUEST["limit"] == null)? 20 : $_REQUEST["limit"];
$sort = ($_REQUEST["sort"] == null)? "" : $_REQUEST["sort"];
$dir = ($_REQUEST["dir"] == "desc")? "DESC" : "";
$filter = $_REQUEST["filter"];

$where = " 0 = 0 ";
if (is_array($filter)) {
    for ($i=0;$i<count($filter);$i++){
        switch($filter[$i]['data']['type']){
            case 'string' : $qs .= " AND ".$filter[$i]['field']." LIKE '%".$filter[$i]['data']['value']."%'"; Break;
            case 'list' :
                if (strstr($filter[$i]['data']['value'],',')){
                    $fi = explode(',',$filter[$i]['data']['value']);
                    for ($q=0;$q<count($fi);$q++){
                        $fi[$q] = "'".$fi[$q]."'";
                    }
                    $filter[$i]['data']['value'] = implode(',',$fi);
                    $qs .= " AND ".$filter[$i]['field']." IN (".$filter[$i]['data']['value'].")";
                }else{
                    $qs .= " AND ".$filter[$i]['field']." = '".$filter[$i]['data']['value']."'";
                }
            Break;
            case 'boolean' : $qs .= " AND ".$filter[$i]['field']." = ".($filter[$i]['data']['value']); Break;
            case 'numeric' :
                switch ($filter[$i]['data']['comparison']) {
                    case 'eq' : $qs .= " AND ".$filter[$i]['field']." = ".$filter[$i]['data']['value']; Break;
                    case 'lt' : $qs .= " AND ".$filter[$i]['field']." < ".$filter[$i]['data']['value']; Break;
                    case 'gt' : $qs .= " AND ".$filter[$i]['field']." > ".$filter[$i]['data']['value']; Break;
                }
            Break;
            case 'date' :
                switch ($filter[$i]['data']['comparison']) {
                    case 'eq' : $qs .= " AND ".$filter[$i]['field']." = '".date('Y-m-d',strtotime($filter[$i]['data']['value']))."'"; Break;
                    case 'lt' : $qs .= " AND ".$filter[$i]['field']." < '".date('Y-m-d',strtotime($filter[$i]['data']['value']))."'"; Break;
                    case 'gt' : $qs .= " AND ".$filter[$i]['field']." > '".date('Y-m-d',strtotime($filter[$i]['data']['value']))."'"; Break;
                }
            Break;
        }
    }   
    $where .= $qs;
}

$query = "SELECT * FROM demo WHERE ".$where;
if ($sort != "") {
    $query .= " ORDER BY ".$sort." ".$dir;
}
$query .= " LIMIT ".$start.",".$count;

$rs = mysql_query($query);
$total = mysql_query("SELECT COUNT(id) FROM demo WHERE ".$where);
$total = mysql_result($total, 0, 0);

$arr = array();
while($obj = mysql_fetch_object($rs)) {
    $arr[] = $obj;
}

echo '{"total":"'.$total.'","data":'.json_encode($arr).'}';
?>

问题补充: 求助一位会PHP的高手将这段php翻译成C#.net 主要是里面几个php函数不知道怎样弄 strstr() explode() implode() 还有一个mysql语句 不会弄 $query .= " LIMIT ".$start.",".$count; 下面是我还没翻译完成的 protected void Page_Load(object sender, EventArgs e) { PageInit(); } protected void PageInit() { string start = (this.Page.Request.QueryString["start"] == null) ? "0" : this.Page.Request.QueryString["start"].ToString(); string limit = (this.Page.Request.QueryString["limit"] == null) ? "10" : this.Page.Request.QueryString["limit"].ToString(); string sort = (this.Page.Request.QueryString["sort"] == null) ? "" : this.Page.Request.QueryString["sort"].ToString(); string dir = (this.Page.Request.QueryString["dir"].ToString() == "desc") ? "DESC" : "ASC"; Array[] filter = new Array(); filter = this.Page.Request.Params["filter"]; string where = "0=0"; string qs = ""; for (int i = 0; i < filter.Length; i++) { switch (filter[i]["data"]["type"]) { case "string": { qs+=" AND "+filter[i]["field"]+" LIKE '%"+filter[i]["data"]["value"]+"%'"; break; } case "list": { //strstr: 返回字符串中某字符串开始处至结束的字符串。 // if (strstr($filter[$i]['data']['value'],',')){ // $fi = explode(',',$filter[$i]['data']['value']); // for ($q=0;$q<count($fi);$q++){ // $fi[$q] = "'".$fi[$q]."'"; // } // $filter[$i]['dat
岁寒づ古枫的主页 岁寒づ古枫 | 初学一级 | 园豆:65
提问于:2008-11-25 16:40
< >
分享
最佳答案
0

一个json的数据源,可以输出数据表,排列数据,筛选数据的,确实如楼上所说,必须借助第三方类才能输出json

从$query = "SELECT * FROM demo WHERE ".$where; 开始,上面的都是在为sql语句做处理,下面的是把sql语句执行的结果输出到json。。。

php 语法比较容易懂,有不懂的地方再问把,全部写出来。 = =!

小盗 | 菜鸟二级 |园豆:315 | 2008-11-26 00:06
其他回答(3)
0

有点太长了吧,扫了一眼,这应该是一段为前端的grid控件提供数据支持的代码,而且用到了json_encode等这样的php 模块,如果在.net中使用,必须有第三方的类似的方法,或者做字符串拼接处理,如果只是应用需要,推荐一个叫做flexgrid 的grid插件,是基于jquery的

雨哲 | 园豆:80 (初学一级) | 2008-11-25 16:58
0

呵呵,看着是有点长,不过,要是懂PHP和.NET的话,先把PHP的业务逻辑搞懂了,在写.NET的程序也就不难了。

金鱼 | 园豆:1090 (小虾三级) | 2008-11-26 11:03
0

xuexi....

Jared.Nie | 园豆:1940 (小虾三级) | 2008-11-26 12:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册