首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机生成的问题在android应用程序中是行不通的

随机生成的问题在android应用程序中是行不通的
EN

Stack Overflow用户
提问于 2017-09-01 10:17:45
回答 1查看 44关注 0票数 0

answered_questions:

问题:

我有这些表和下面的PHP脚本

代码语言:javascript
复制
if($_SERVER['REQUEST_METHOD'] == 'GET') {


//makes it work
$category = (string)filter_input(INPUT_GET, 'category');
$game_id = (string)filter_input(INPUT_GET, 'game_id');

require_once('dbConnect.php');

$query = "SELECT question FROM questions 
    WHERE category = '$category'
     and question 
     NOT IN 
     (SELECT question 
     FROM answered_questions 
     WHERE game_id='$game_id')ORDER BY Rand() limit 1";

$r = (mysqli_query($con, $query));

$res = mysqli_fetch_array($r);

$result = array();

array_push($result, array(
        "question" => $res['question'],
    )
);

echo json_encode(array("result" => $result));

mysqli_close($con);

}

在我用android运行这个应用程序之前,一切都正常。当我单击getQuestion按钮/调用该方法时,应用程序将生成已回答的问题。该应用程序的目的是生成一个问题,这个问题不存在于“回答的问题”表中,只需单击一次

代码语言:javascript
复制
private void getQuestion() {

    String url ="";

    String cat = category.getText().toString();
    String id = game_id.getText().toString();

    if (cat.equals("Control Questions")){
        url = "http://192.168.0.20/Articulate/getControlQuestion.php?game_id="+id;
    }else {
        url = "http://192.168.0.20/Articulate/getQuestion.php?category="+cat+"&game_id="+id;
    }

    StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            showJSON(response);
        }
    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            });

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);
}

private void showJSON(String response){
    String ques="";
    try {
        JSONObject jsonObject = new JSONObject(response);
        JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY);
        JSONObject collegeData = result.getJSONObject(0);
        ques = collegeData.getString("question");
    } catch (JSONException e) {
        e.printStackTrace();
    }
    question.setText(ques);
}
EN

回答 1

Stack Overflow用户

发布于 2017-09-01 10:34:56

为什么不简单地合并两个表并添加一个布尔字段(tinyint) answered?然后,您只需将SQL请求更改为SELECT question FROM questions WHERE category = '$category' AND answered = 0即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45998066

复制
相关文章

相似问题

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