Передача данных запроса от одного действия к другому в Android

Я новичок в программировании в Android Studio.

Я подключил свое приложение к базе данных, используя php, ms sql,

Мой php код:

if( !$conn )

{

echo "Connection could not be established.";

die( print_r( sqlsrv_errors(), true));
}

else{
$user_name = $_POST["username"];
$pass_word = $_POST["password"];

$sql = "select emp_role,emp_id from employee where emp_loginid =(?) and
emp_password =(?)";
$params = array($user_name,$pass_word);
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql , $params, $options );

$row_count = sqlsrv_num_rows( $stmt );

if ($row_count > 0)
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ){
echo $row["emp_role"];
echo $row["emp_id"];
}
else
echo "username or password is incorrect";
}

Это мой справочный код

public class BackgroundWorker extends AsyncTask<String,Void,String> {
Context context;
AlertDialog alertDialog;
String username, password;

BackgroundWorker(Context ctx) {

context = ctx;
}

@Override
protected String doInBackground(String... params) {
String type = params[0];
String login_url = "http://localhost:8080/sqlsrv.php";
if (type.equals("login")) {
try {
username = (String) params[1];
password = (String) params[2];
URL url = new URL( login_url );
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod( "POST" );
httpURLConnection.setDoOutput( true );
httpURLConnection.setDoInput( true );
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter( new OutputStreamWriter( outputStream, "UTF-8" ) );
String post_data = URLEncoder.encode( "username", "UTF-8" ) + "=" + URLEncoder.encode( username, "UTF-8" ) + "&"+ URLEncoder.encode( "password", "UTF-8" ) + "=" + URLEncoder.encode( password, "UTF-8" );
bufferedWriter.write( post_data );
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( inputStream, "iso-8859-1" ) );
String result = "";
String line = "";
while ((line = bufferedReader.readLine()) != null) {
result += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Login Status");
}

@Override
protected void onPostExecute(String result) {
/*if(result != null){
Intent intent=new Intent(context,LoginSucess.class);
context.startActivity(intent);
}else{
alertDialog.setMessage(result);
alertDialog.show();
}*/

if(result.equals("username or password is incorrect")) {
Toast.makeText( context, result, Toast.LENGTH_LONG ).show();
}
if(result.equals("AD")){
Intent admin=new Intent(context,Admin.class);
context.startActivity(admin);
}
if(result.equals("EN")){
Intent engineer=new Intent(context,Engineer.class);
context.startActivity(engineer);
}
if(result.equals("SC")){
Intent service=new Intent(context,Service.class);
context.startActivity(service);
}
if(result.equals("SLP")){
Intent Sperson=new Intent(context,SalesPerson.class);
context.startActivity(Sperson);
}
if(result.equals("SLSC")){
Intent Sservice=new Intent(context,SalesService.class);
context.startActivity(Sservice);
}
if(result.equals("SLSU")){
Intent SalesSuper=new Intent(context,SalesSupervisior.class);
context.startActivity(SalesSuper);
}
if(result.equals("SU")){
Intent Supervisior=new Intent(context,Supervisior.class);
context.startActivity(Supervisior);
}
}
}

Теперь я хочу сравнить, используя $ row [«emp_role»], что я уже делаю
но после сравнения хочу пройти
но теперь я хочу передать $ row [«emp_id»] в следующем намерении, которое здесь.

if(result.equals("AD")){
Intent admin=new Intent(context,Admin.class);
context.startActivity(admin);

Спасибо всем, кто ответит на мой запрос.

0

Решение

В своем php-коде вы можете написать:

if ( $row["emp_role"] == "ADMIN")
echo $row["emp_id"] + "-ADMIN";
else
echo $row["emp_id"];

В вашем коде Android вы можете написать:

if(result.endsWith("-ADMIN")){
Intent admin=new Intent(context,Admin.class);
context.startActivity(admin);
}
else if(result.equals("AD")){
Intent notAdmin=new Intent(context,NotAdmin.class);
context.startActivity(notAdmin);
}
0

Другие решения

В фоновом режиме у вас есть это:

if(result.equals("AD")){
Intent admin=new Intent(context,Admin.class);
admin.putExtra("username", username);
context.startActivity(admin);

Затем в вашей активности администратора вы должны сделать это в методе onCreate ():

        String userName;
if(getIntent().getExtras() != null){
userName = (String) getIntent().getExtras().get("username");
}

Я надеюсь, что это поможет вам.

0

По вопросам рекламы [email protected]