java—从mysql中获取基于用户id的数据,并在android studio的recyclerview中显示

8aqjt8rx  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(232)

所以我有一个包含两个表的数据库,一个用于名为 tblactivity 另一个叫 tblusers : tblactivity 包含一个用户的多个数据,我想在 tblactivity 在基于我从其获取数据的登录用户的recyclerview中 tblusers . tblactivityuserid 我想知道该怎么办。
编辑:更多详细信息:
所以我使用slim框架:dbconnect.php

//Method to get emails of a particular user

    public function getActivity(){
        $stmt = $this->con->prepare("SELECT id, userid, subject, message FROM tblactivity");
        $stmt->execute(); 
        $stmt->bind_result($id, $userid, $subject, $message);
        $users = array(); 
        while($stmt->fetch()){ 
            $user = array(); 
            $user['id'] = $id; 
            $user['userid'] = $userid; 
            $user['subject'] = $subject; 
            $user['message'] = $message; 

            array_push($users, $user);
        }             
        return $users; 

    }

my index.php代码

$app->get('/allactivity', function(Request $request, Response $response){
$db = new DbOperations; 
$users = $db->getActivity();
$response_data = array();
$response_data['error'] = false; 
$response_data['users'] = $users; 
$response->write(json_encode($response_data));
return $response
->withHeader('Content-type', 'application/json')
->withStatus(200);  
});

现在在android studio中:
my activity.java模型:

public class Activity {

private int id;
private int userid;
private String subject;
private String message;
private String to;

public Activity(String subject, String message) {

    this.id = id;
    this.userid = userid;
    this.subject = subject;
    this.message = message;
    this.to = to;

}

public int getId() {
    return id;
}
public int getUserid() { return userid; }
public String getSubject() { return subject; }
public String getMessage() {
    return message;
}
public String getTo() { return to; }

}

user.java模型

public class User {
private int id;
private String email;
private String firstname;
private String lastname;
private String companyname;
private String postcode;
private String city;
private String state;
private String phonenumber;
private String address1;
private String country;
private String status;
private int currency;
private String credit;
private String language;
private int email_verified;

public User(int id, String email, String firstname, String lastname, String companyname, String address1, String city,
            String state, String postcode, String country, String phonenumber, String status, int currency, String credit,
            String language, int email_verified) {

    this.id = id;
    this.email = email;
    this.firstname = firstname;
    this.lastname = lastname;
    this.companyname = companyname;
    this.address1 = address1;
    this.city = city;
    this.state = state;
    this.postcode = postcode;
    this.country = country;
    this.phonenumber = phonenumber;
    this.status = status;
    this.currency = currency;
    this.credit = credit;
    this.language = language;
    this.email_verified = email_verified;

}

public int getId() {
    return id;
}
public String getEmail() {
    return email;
}
public String getFirstName() {
    return firstname;
}
public String getLastName() {
    return lastname;
}
public String getCompanyName() { return companyname; }
public String getAddress1() {
    return address1;
}
public String getCity() {
    return city;
}
public String getState() { return state; }
public String getPostcode() {
    return postcode;
}
public String getCountry() {
    return country;
}
public String getPhonenumber() {
    return phonenumber;
}
public String getStatus() { return status; }
public int getCurrency() { return currency; }
public String getCredit() {
    return credit;
}
public String getLanguage() {
    return language;
}
public int getEmail_verified() { return email_verified; }

}

我使用改造客户机从php获取json输出。

@GET("allactivity")
Call<List<Activity>> getActivityData();

}
rjee0c15

rjee0c151#

如果我理解正确的话,你的问题是关于数据处理的。现在有两种可能,如果设备上有本地数据库,则必须创建sqlliteopenhelper并传入sql查询,在该查询中,您可以澄清需要什么数据示例可以是:

SELECT * FROM tblactivity WHERE userid = 30;

在本例中,您将获得id为30的用户的所有信息。现在如果你有一个在线数据库,你必须写一个php文件,它允许你与sql数据库通信,如果我在这里也添加这个,那就太过分了。以下是您可以查看的教程:https://www.w3schools.com/php/php_mysql_connect.asp
一旦您通过ftp处理程序上传了php文件,就需要打开一个internet连接,链接如下:www.mydomain.com/database.php?userid=30 .
您传递了对您感兴趣的用户的限制。在您的php文件中,您可以通过以下方式获得数据:

$sql = "SELECT * FROM tblactivity WHERE userid = ".$_GET["userid"];

然后您需要读取传入的数据并对其进行解析。我的选择是在php文件中使用json编码,并将传入的数据作为json存储在应用程序中。你也需要了解这一点,但这并不难。
如果已收到数据,则需要创建一个自定义对象,在其中存储所有必要的信息:

public class User {
    public User(String name, int _id, String email){
        //save the information in local variables
    }
    public String getName(){
         return mName;
    }
    //Add more methods to get and set the different variables.
}

接下来要做的就是创建一个自定义适配器来填充recyclerview的项。不过,这也太难解释了。以下是另一个教程的链接:https://medium.com/mindorks/custom-array-adapters-made-easy-b6c4930560dd
现在看来可能很多,但我也刚刚开始,你会很快掌握窍门的。

相关问题