我有一个可以登录和注册的应用程序,这个应用程序可以从数据库读取数据,但是我获取所有用户的所有数据,如何获取与登录用户匹配的数据?
这是我的 API 和 SharedPref
<?php
require_once('dbConnect.php');
if($_SERVER['REQUEST_METHOD']=='GET') {
$sql = "SELECT * FROM farm ORDER BY SN" ;
$res = mysqli_query($con,$sql);
$result = array();
while($row = mysqli_fetch_array($res))
{
array_push($result, array('no'=>$row[0], 'username'=>$row[1],
'SN'=>$row[2]));
}
echo json_encode(array("value"=>1,"result"=>$result));
mysqli_close($con);
}
?>
这是 Sharedpreference 上的代码
public class SharedPrefManager {
public static final String SP_PREF = "etSmartAgriculture";
public static final String SP_EMAIL = "etUsername";
public static final String SP_ALREADY_LOGGEDIN = "spAlreadyLoggedIn";
private SharedPreferences sp;
private SharedPreferences.Editor spEditor;
public SharedPrefManager(Context context){
sp = context.getSharedPreferences(SP_PREF, Context.MODE_PRIVATE);
spEditor = sp.edit();
}
public void saveSPString(String keySP, EditText value){
spEditor.putString(keySP, String.valueOf(value));
spEditor.commit();
}
public void saveSPInt(String keySP, int value){
spEditor.putInt(keySP, value);
spEditor.commit();
}
public void saveSPBoolean(String key7SP, boolean value){
spEditor.putBoolean(key7SP, value);
spEditor.commit();
}
public Boolean getSPSudahLogin(){
return sp.getBoolean(SP_ALREADY_LOGGEDIN, false);
}
/**
* Get stored session data
* */
public HashMap<String, String> getUserDetails(){
HashMap<String, String> user = new HashMap<String, String>();
// user email id
user.put(SP_EMAIL, sp.getString(SP_EMAIL, null));
// return user
return user;
}
}
最佳答案
要获取特定的用户详细信息,您需要更改 SQL 查询。我不确定你的数据库表结构。您需要选择用户电子邮件地址与您传递的电子邮件地址相匹配的用户信息:SP_EMAIL。
$sql = "SELECT * FROM farm WHERE user_email = SP_EMAIL ORDER BY SN";
在这里您可以得到完整的登录注册教程,并存储登录后的用户信息。请仔细阅读此tutorial 。希望对您有所帮助。
关于java - Android-通过邮件登录mysql获取特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55998441/