PHP數組由sql行構成json_encode



mysql arrays (1)

即時通訊使用json_encode轉換從SQL查詢到JSONObject的php數組時遇到麻煩。 我使用谷歌排球來實現連接。

當涉及到單行結果,即時通訊沒有得到任何問題,但是當有超過1行,即時通訊在我的應用程序中得到一個錯誤,這意味著即時通訊不真正recing JSONObject。

這裡是我的PHP代碼

if (mysql_num_rows($result) > 0) {

$rutina = array();
while($row = mysql_fetch_assoc($result))
{
    $rutina[] = $row;
}}  

我以這種方式返回

echo json_encode($rutina);

我知道mysql被棄用,即時遷移到mysqli。

什麼是正確的方法將我的SQL數組轉換為JSONObject?

編輯:

這是我的android代碼,等待JSONObject:

JsonObjectRequest solicitudRutina = new JsonObjectRequest(
            Request.Method.POST, //metodo de solicitud
            linkrutina, //url, se cambia en las variables
            map,//el objeto JSON que contiene el usuario que intentaremos descargar
            new Response.Listener<JSONObject>() { //el listener de la respuesta
                @Override
                public void onResponse(JSONObject response) { // si existe respuesta aca se cacha,

                    String temp= response.optString("sinexito");//sinexito tiene el mensaje de error de no encontrar el usuario

                    if(temp.equals("")){//si la rutina existe, iniciamos descarga

                        rutinaview.setText(response.toString());
                        //obtenerRutina(response);
                    }
                    else{
                        Context context = getApplicationContext();
                        CharSequence text = "Problema al descargar la rutina, posiblemente no exita una asignada";
                        int duration = Toast.LENGTH_LONG;

                        Toast toast = Toast.makeText(context, text, duration);
                        toast.show();
                    }

                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            {
                Context context = getApplicationContext();
                CharSequence text = "Error con la base de datos.";
                int duration = Toast.LENGTH_LONG;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();
            }
        }
    });
    VolleyApplication.getsInstance().getmRequestQueue().add(solicitudRutina);

即時響應錯誤得到敬酒。 即時通訊假設是因為我沒有得到一個JSONObject? 它工作正常,只有1行壽。


一般我使用像這些JSON對象成功解析需要做一些事情非常清楚,頁面頭必須有JSON作為MIME類型,所以其他任何代碼可以很容易地識別它。

<?php
header('Content-Type:application/json');
//Your Database query here...
$output = mysqli_fetch_all($rutina,MYSQLI_ASSOC);
echo json_encode($output);

它一直在為我工作...無需使用while循環,它將輸出作為數據庫查詢找到的行的關聯數組





mysqli