0

I am new to programming in Android Studio.

I have connected my app to database using php, ms sql.

My php code :

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";
}

This is my backgroundwroker code

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);
    }
  }
}

Now i want to compare using $row["emp_role"], which i am already doing but after comparing i want to pass but now i want to pass $row["emp_id"] in next intent that is here.

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

Thank you to all those who answer my query.

Nikhil Lohar
  • 127
  • 1
  • 9

2 Answers2

0

In your Background worker you have this:

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

Then in your Admin activity you need do this in the onCreate() method:

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

I hope it helps you.

Juanjo Berenguer
  • 789
  • 1
  • 5
  • 8
  • That was a mistake there i don't want to pass username i want to pass $row["emp_id"] there – Nikhil Lohar Sep 05 '18 at 09:17
  • Then you need parse your php response. If you dont parse the response of your php you cant get this data. You need treat your result response and get the data from there and then you can be able to pass it in the intent – Juanjo Berenguer Sep 05 '18 at 09:20
  • parse_str("role= $row['role']&empid=$row['emp_id']",$myArray); print_r($myArray); like this? – Nikhil Lohar Sep 05 '18 at 09:24
  • I dont know what is your php returning. But a good way to handle this is using JSON as response. – Juanjo Berenguer Sep 05 '18 at 09:27
0

In your php code you can write:

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

In your android code you can write:

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);
}
AIMIN PAN
  • 1,563
  • 1
  • 9
  • 13