Men mysql ma'lumotlar bazasiga ma'lumotlarni kiritishi mumkin bo'lgan mobil ilovani qanday ishlab chiqishni ko'rsataman. Men foydalangan server xampp serveridir



Yüklə 216,12 Kb.
tarix02.06.2023
ölçüsü216,12 Kb.
#122500
1683739002.docx 4topshiriq


O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

Mobil ilovalarni ishlab chiqish”
fanidan

AMALIYOT

TOPSHIRIQ №4

Bajardi:Meliboyev Sanjarbek


Qabul qildi: Dauletov Adilbek

Toshkent 2023

MySQL va Android Studio misoli


Men mySQL ma'lumotlar bazasiga ma'lumotlarni kiritishi mumkin bo'lgan mobil ilovani qanday ishlab chiqishni ko'rsataman. Men foydalangan server XAMPP serveridir.
Mobil ilova quyidagi kabi. U ism, foydalanuvchi nomi va parol kabi foydalanuvchini ro'yxatdan o'tkazish uchun foydalanilgan. Keyin u login hisobi sifatida ishlatilishi mumkin.
Umid qilamanki, sizga yoqdi!!!

Bu foydalanuvchi ro'yxatdan o'tganda.

1-qadam: phpMyAdmin-da mySQL ma'lumotlar bazasini yarating

  • “ Talabalar ” nomli ma’lumotlar bazasini yarating .

  • “ ID ”, “ ism ”, “ foydalanuvchi nomi ” va “ parol ” boʻlgan uchta ustunli roʻyxat nomli jadval yarating .


  • Ma'lumotlar bazasi va jadval yaratish bo'yicha oldingi o'quv qo'llanmamga murojaat qilishingiz mumkin.

2-qadam: 3 ta PHP fayl yarating

  • conn.php nomli PHP faylini yarating .

$servername = "localhost";


$username = "root";
$parol = "";
$ma'lumotlar bazasi = "talabalar";

// Ulanish yaratish


$conn = mysqli_connect($servername, $foydalanuvchi nomi, $parol,$ma'lumotlar bazasi);
?>

  • insertData.ph p nomli PHP fayl yarating . Keyin quyida kodlashni yozing. Ism, foydalanuvchi nomi va parol uchun soxta qiymat qo'yish orqali PHP-ni sinab ko'rishingiz mumkin. $name, $user_name va $password oʻzgaruvchisiga izoh qoldirishni unutmang.

"conn.php" ni talab qilish;
$name = $_POST["ism"];
$user_name = $_POST["user_name"];
$parol = $_POST["parol"];
//$name = "shaharil";
//$user_name = "shah";
//$parol = "1234";

$mysqli_query = "RO'YAT QIYMATLARIGA QO'SHISH (NULL,'$name','$user_name','$parol');";


$natija = mysqli_query($conn,$mysqli_query);


//AVTOINCREMENTni qayta o'rnating


$natija = mysqli_query($conn,"SET @num := 0;");
$natija = mysqli_query($conn,"Yangilanish ro'yxati SET identifikatori @num := (@num+1)");
$natija = mysqli_query($conn,"ALTER TABLE ro'yxati AUTO_INCREMENT =1");

agar($natija){


print("Siz ro'yxatdan o'tgansiz!");
}
boshqa{
chop etish ("Muvaffaqiyatli EMAS");
}

?>


  • validateData.php nomli boshqa PHP faylini yarating . Keyin quyida kodlashni yozing. Siz PHP-ni foydalanuvchi nomi va parol uchun soxta qiymat qo'yish orqali sinab ko'rishingiz mumkin. $user_name va $password oʻzgaruvchisiga izoh qoldirishni unutmang.

"conn.php" ni talab qilish;


$user_name = $_POST["user_name"];
$parol = $_POST["parol"];
//$user_name = "shah";
//$parol = "1234";

$mysqli_query = "Foydalanuvchi nomi '$user_name' va parol kabi '$password' kabi ro'yxatda SELECT * FROM";


$natija = mysqli_query($conn,$mysqli_query);


if(mysqli_num_rows($result)>0){


//chop etish ("Kirish muvaffaqiyatli");
$ qator = mysqli_fetch_assoc ($ natija);
$name =$satr["ism"];
Chop etish ("Kirish muvaffaqiyatli..Xush kelibsiz ".$name);

}
boshqa{


print("Kirish muvaffaqiyatli emas");
}

?>


3-qadam: Komponentlar Android Studio-da bo'lishi kerak

  • Loyihangizda quyidagi kabi barcha fayllar bo'lishi kerak. Gradle fayli o'zgarmaydi.


4-qadam: activity_main.xml ni loyihalash :



xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
asboblar: context=".MainActivity">


android: id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:ems="10"
android: maslahat = "ism"
android:inputType="textPersonName"
ilova:layout_constraintEnd_toEndOf="ota-ona"
ilova:layout_constraintStart_toStartOf="ota-ona"
ilova:layout_constraintTop_toTopOf="ota-ona" />


android: id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:ems="10"
android: maslahat = "foydalanuvchi nomi"
android:inputType="textPersonName"
ilova:layout_constraintEnd_toEndOf="ota-ona"
ilova:layout_constraintStart_toStartOf="ota-ona"
ilova:layout_constraintTop_toBottomOf="@+id/editText1" />


android: id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:ems="10"
android: maslahat = "parol"
android:inputType="textPersonName"
ilova:layout_constraintStart_toStartOf="@+id/editText2"
ilova:layout_constraintTop_toBottomOf="@+id/editText2" />


android: id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Ro'yxatdan o'tish"
ilova:layout_constraintEnd_toEndOf="ota-ona"
ilova:layout_constraintStart_toStartOf="ota-ona"
ilova:layout_constraintTop_toBottomOf="@+id/editText3" />


android: id="@+id/editText4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:ems="10"
android: maslahat = "foydalanuvchi nomi"
android:inputType="textPersonName"
ilova:layout_constraintEnd_toEndOf="ota-ona"
ilova:layout_constraintStart_toStartOf="ota-ona"
ilova:layout_constraintTop_toBottomOf="@+id/button1" />


android: id="@+id/editText5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:ems="10"
android: maslahat = "parol"
android:inputType="textPassword"
ilova:layout_constraintStart_toStartOf="@+id/editText4"
ilova:layout_constraintTop_toBottomOf="@+id/editText4" />


android: id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Kirish"
ilova:layout_constraintEnd_toEndOf="ota-ona"
ilova:layout_constraintStart_toStartOf="ota-ona"
ilova:layout_constraintTop_toBottomOf="@+id/editText5" />



5-qadam: Design the BackgroundWorker.java nomli sinf yarating :
com.example.a06_mysql_reg_login paketi;

android.app.AlertDialog import;


android.content.Context import;
android.os.AsyncTask import;
import android.widget.Toast;

import java.io.BufferedReader;


import java.io.BufferedWriter;
import java.io.IOException;
java.io.InputStreamni import qilish;
java.io.InputStreamReader dasturini import qilish;
java.io.OutputStreamni import qilish;
java.io.OutputStreamWriterni import qilish;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

umumiy sinf BackgroundWorker AsyncTask-ni kengaytiradi {


Kontekst konteksti;
AlertDialog alertDialog;
BackgroundWorker (Context ctx){
kontekst = ctx;
}
@Override
himoyalangan String doInBackground(String... params) {
String login_url = params[0];
String turi = params[1];
String nomi = params[2];
String username = params[3];
String parol = params[4];
harakat qilib ko'ring {

URL url = yangi URL (login_url);


HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(to'g'ri);
httpURLConnection.setDoInput(to'g'ri);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = yangi BufferedWriter (yangi OutputStreamWriter(outputStream, "UTF-8"));

string post_data = "";


if(type.equals("ro'yxatdan o'tish")) {
post_data = URLEncoder.encode("ism", "UTF-8") + "=" + URLEncoder.encode(nom, "UTF-8") + "&"
+ URLEncoder.encode("user_name", "UTF-8") + "=" + URLEncoder.encode(foydalanuvchi nomi, "UTF-8")+ "&"
+ URLEncoder.encode("parol", "UTF-8") + "=" + URLEncoder.encode(parol, "UTF-8");
}
else if(type.equals("login")){
post_data = URLEncoder.encode("user_name", "UTF-8") + "=" + URLEncoder.encode(foydalanuvchi nomi, "UTF-8") + "&"
+ URLEncoder.encode("parol", "UTF-8") + "=" + URLEncoder.encode(parol, "UTF-8");
}

bufferedWriter.write(post_ma'lumotlar);


bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = yangi BufferedReader (yangi InputStreamReader (inputStream, "iso-8859-1"));
String natijasi = "";
String line = "";
while ((line = bufferedReader.readLine()) != null) {
natija += chiziq;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
natijani qaytarish;

} catch (MalformedURLException e) {


e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

nullni qaytarish;


}

@Override


himoyalangan bekor onPreExecute() {
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Kirish holati");
}

@Override


himoyalangan void onPostExecute (String natijasi) {

alertDialog.setMessage(natija);


alertDialog.show();
//Toast.makeText(context.getApplicationContext(),natija,Toast.LENGTH_LONG).show();

}
@Override


himoyalangan void onProgressUpdate (Void... qiymatlari) {
super.onProgressUpdate(qiymatlar);
}
}
6-qadam: MainActivity.java- ga kodni yozing :
com.example.a06_mysql_reg_login paketi;

import androidx.appcompat.app.AppCompatActivity;


android.os.Bundle import;


android.view.View import;
import android.widget.Button;
android.widget.EditText import;

umumiy klass MainActivity AppCompatActivity-ni kengaytiradi {


EditText nameRegister;


EditText foydalanuvchi nomi Ro'yxatdan o'tish;
EditText passwordRegister;
Registr tugmasi;

EditText usernameLogin;


EditText passwordLogin;
Kirish tugmasi;

@Override


himoyalangan void onCreate (to'plam savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameRegister = findViewById(R.id.editText1);
usernameRegister = findViewById(R.id.editText2);
passwordRegister = findViewById(R.id.editText3);
registratsiya = findViewById(R.id.button1);

usernameLogin = findViewById(R.id.editText4);


passwordLogin = findViewById(R.id.editText5);
login = findViewById(R.id.button2);
register.setOnClickListener(yangi View.OnClickListener() {
@Override
public void onClick(View v) {
String nomi = nameRegister.getText().toString();
String username = usernameRegister.getText().toString();
String parol = passwordRegister.getText().toString();
String url = "http://192.168.43.41/ArinProject/ANDROID_MYSQL/insertData.php";
String turi = "ro'yxatdan o'tish";
BackgroundWorker backgroundWorker = yangi BackgroundWorker(MainActivity.this);
backgroundWorker.execute (url, turi, nomi, foydalanuvchi nomi, parol);
}
});

login.setOnClickListener(yangi View.OnClickListener() {


@Override
public void onClick(View v) {
String nomi = nameRegister.getText().toString();
String username = usernameLogin.getText().toString();
String parol = passwordLogin.getText().toString();
String url = "http://192.168.43.41/ArinProject/ANDROID_MYSQL/validateData.php";
String turi = "login";
BackgroundWorker backgroundWorker = yangi BackgroundWorker(MainActivity.this);
backgroundWorker.execute (url, turi, nomi, foydalanuvchi nomi, parol);
}
});


}
}
Yüklə 216,12 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin