如何在codeigniter中执行分组和计数

时间:2015-04-26 20:10:17

标签: php mysql codeigniter activerecord

我有这张桌子

-----------------------------
id | blog_link | source
-----------------------------
 1 | blog_one  | facebook
 2 | blog_one  | twitter
 3 | blog_two  | twitter
 4 | blog_four | unknown
 5 | blog_four | facebook
 6 | blog_four | twitter
-----------------------------

现在我想对此进行一些分析,我希望看起来像这样

----------------------------------------
blog_link  | facebook | twitter | unknown
----------------------------------------
blog_one   | 1        | 1       | 0
blog_two   | 0        | 1       | 0
blog_three | 1        | 1       | 1
----------------------------------------
// above nos represent number of times facebook, twitter or unknown were the source

我已经准备好了mysql我想做什么如何在前端使用codeigniter显示表二,我现在我们可以使用group by和count但是我无法使用正确的逻辑。

1 个答案:

答案 0 :(得分:1)

您可以使用以下查询,但不确定如何将其用作活动记录,但普通查询可用作

import android.os.Environment;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.app.Activity;
import android.app.DownloadManager;
import android.app.DownloadManager.Query;
import android.app.DownloadManager.Request;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import java.io.File;

public class Upgrade extends ActionBarActivity {
    private long enqueue;
    private DownloadManager dm;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_upgrade);

        BroadcastReceiver receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
                    long downloadId = intent.getLongExtra(
                            DownloadManager.EXTRA_DOWNLOAD_ID, 0);
                    Query query = new Query();
                    query.setFilterById(enqueue);
                    Cursor c = dm.query(query);
                    if (c.moveToFirst()) {
                        int columnIndex = c
                                .getColumnIndex(DownloadManager.COLUMN_STATUS);
                        if (DownloadManager.STATUS_SUCCESSFUL == c
                                .getInt(columnIndex)) {


                        }
                    }
                }
            }
        };

        registerReceiver(receiver, new IntentFilter(
                DownloadManager.ACTION_DOWNLOAD_COMPLETE));
    }

    public void onClick(View view) {
        dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
        Request request = new Request(
                Uri.parse("http://android.vrt.ro/tv-update/v1.apk"));
        enqueue = dm.enqueue(request);


    }

    public void showDownload(View view) {

        Intent promptInstall = new Intent(Intent.ACTION_VIEW)
                .setDataAndType(Uri.parse("file:///sdcard/download/v1.apk"),
                        "application/vnd.android.package-archive");
        startActivity(promptInstall);

    }

}