Php'de Öğrenci Kodu ile Derse Üye Olmak

Php'de ögretmen sayfam var. Bu sayfada öğretmene ders ekle seçeneği koyup ders ekleyip  bir kod verip buna göre öğrenci kodu girince o derse üye olmasını nasıl yapabilirim? 

  • Etiketler;

Sizi biraz bekleteceğim ama anlatmak biraz uzun sürüyor. :D

/* Öğretmen ders ekleyince bir kod çıksın istiyorsunuz değil mi? Bu kodu yapabilmek için bir iki yöntem var. İlki idsini kullanmak. İkincisi id + 100000 yapmak. Üçüncüsü random sayılar kullanmak. Daha da çıkartılır ama bence bunlar size yeterlidir. */

// Sırayla göstereyim.

$veri = $vt->prepare("SELECT * FROM tabloadi ORDER BY id DESC");
$veri ->execute();
$vericek = $veri ->fetch(PDO::FETCH_ASSOC);

$id = $vericek["id"]; // bu şekilde son idyi çekmiş oluyoruz.

#####

$veri = $vt->prepare("SELECT * FROM tabloadi ORDER BY id DESC");
$veri ->execute();
$vericek = $veri ->fetch(PDO::FETCH_ASSOC);

$id = $vericek["id"] + 100000; // bu iekilde ise son idye + 100 bin eklemiş olduk.

#####

rand(111111,999999); // rand() kodundan yararlanarak 111111 ile 999999 arasında rastgele bir sayı oluşturur bunu da kullanabilirsiniz. Açıkcası ben bu koda bayılıyorum. :D

#####

// Her şey iyi hoş da bu idleri yada kodları nasıl öğrenciye vericeğizde öğrenci bu derse üye olacak yada abone olacak? 

/* Önce bu mantığı anlatmakla başlayayım. Öğretmen dersi ekler ekledikten sonra id veya random bir kod çıkarç. Yalnız buraya dikkat! id de sorun yok ancak rand kodunu önceden sisteme eklemelisiniz. Bunun için ise öğretmen ders ekle sayfasında arkaplanda rand kodu girilmeli daha sonra öğretmen dersi eklediğinde bu rand() kodundaki değer de "dersler" tablosunda "kod" sütununa eklenmek zorundadır. Aksi taktirde kimse kimseyi bulamaz kaybolurlar. :) İşte bu yüzden "dersler" tablosunda "kod" için bir sütun açmanız gerekmektedir.

Bunu eklediğimizi farz edelim. Bu eklediğimizi ekrana yazdıralım ki (koddan bahsediyorum) öğrenci kodu alabilsin.

Birde üyelikler yada abonelikler diye bir tablo oluşturmak gerekiyor. Öğretmen ders eklediğinde dersin kodu bu tabloya eklenmeli bu şekilde abonelik veya üyelik tablosunda bu dersin kodu yer alacaktır.

Onu da ekledik farz edelim. Öğrenci kodu bir forma girdiğinde kod ise veri tabanından sorgulanacak varsa öğrenciyi o dataya ekleyecek. Yoksa hata verecek. Öğrenci o datada yer alıyorsa ders ona gözükmesi gerekiyor. Bu yüzden basit bir sorgu ile bu sorunu halledeceğiz.

Eğer öğrenci derse kayıtlı ise öğrenci o dersi görüntüleyebilsin. Eğer öğrenci derse kayıtlı değil ise o öğrenci derse kayıt olacak forma yönlendirilsin.
 */

// Şimdi kodlayalım. :)

/* ders ekle */

if($_POST){

	$dersadi 		= $_POST["dersadi"];
	$ogretmenadi 	= $_POST["ogretmenadi"];
	$kod 			= rand(111111,999999);
	$dersekle 		= $vt->prepare("INSERT INTO tabloadi set dersadi=?, ogretmenadi=?, kod=?"); // ders adı, öğretmen adı, kod vs..
	$dersekle ->execute(array($dersadi, $ogretmenadi, $kod));
		
		$abonelik		= $vt->prepare("INSERT INTO tabloadi set kod=?"); // ders adı, öğretmen adı, kod vs..
		$abonelik ->execute(array($kod));

	if($dersekle){
		echo "ders eklendi :) <input type='text' value='" . $kod . "' />";
	}else{
		echo "hata :(";
	}

}else{
	// form
}

/* öğrenci kodu girince derse üye olsun */

if($_POST){

	$kod 		= $_POST["dersadi"];

	$kontrolet = $vt->prepare("SELECT * FROM uyeliktablosu WHERE kod =:kod ");
	$kontrolet->execute(array('kod'=>$kod));
	$saydirma = $kontrolet->rowCount();
		
	if($saydirma >0){

		// eğer kod, üyelik/abone tablosunda varsa

		$abonelik = $vt->prepare("UPDATE tabloadi set kod=?, ogrenciadi=?"); // ders adı, öğretmen adı, kod vs..
		$abonelik ->execute(array($kod, $_SESSION["ogrenciadi"]));

		if($abonelik){

			// derse üye oldu
			echo "başarıyla derse kaydoldun :)";

		}else{

			// hata
			echo "hay aksi bir hata ile karsilastik :(";

		}

	}else{

		// eğer kod, üyelik/abone tablosunda yoksa derse kayıt sayfasına gitsin

		header("REFRESH:2;URL=form.php");

	}

}else{

	// form
	
}

// Son :)

 

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git