PHP: Sınav Sonucu Görüntüleme Sistemi
<html> <head> <meta charset="UTF-8"> </head> <body> <?php function ortalamavesira($arr,$noo) { $sayac=0; $arr1=array(); $toplam=0; foreach ($arr as $key=>$value) { $val=$arr[$key]; if($value!="GR" && is_numeric($val)) { $arr1[]=$val; $toplam+=$val; $sayac++; } } $ort=round($toplam/$sayac,2); rsort($arr1); if(is_numeric($arr[$noo])) $key = array_search($arr[$noo], $arr1); else return " ----- Sinava girmediginiz icin istatistik veremiyoruz"; $durum="siralamaniz:".($key+1)."/".count($arr1); return " ----- sinif ort:".$ort." ----- ".$durum; } $sayac=0; if(isset($_POST["no"]) && is_numeric($_POST["no"])) { $no=$_POST["no"]; $sinavkatari=array(); $sinavkatari["asinavi"]=array("123321123"=>"60"); $sinavkatari["bsinavi"]=array("123456789"=>"80","123321123"=>"50","111111111"=>"20"); $sinavkatari["csinavi"]=array("123456780"=>"50","123321123"=>"40"); $sinavkatari["dsinavi"]=array("123456781"=>"75","123321123"=>"60"); //... istediginiz kadar sinav ekleyebilirsiniz. foreach ($sinavkatari as $ky=>$vls) { $arr=$sinavkatari[$ky]; if(isset($arr[$no])){ echo $ky." vize notunuz:".$arr[$no]." ".ortalamavesira($arr,$no)."<br/>"; $sayac++; } } if($sayac==0){ echo "seni okul no ile taniyamadik :) bir yanlislik oldugunu dusunuyorsan mail atmayi deneyebilir veya face den ulasabilirsin<br/><br/><br/>"; } echo "<br/><br/><br/>"; } ?> <form action="" method="POST"> OKUL NO:<input type="text" id="no" name="no"><br/> <input type="submit" value="Gonder" > </form> </body> </html>
Kodun çalışır haline buradan ulaşabilirsiniz.
Merhaba,
Böyle bir sisteme çok ihtiyacım vardı teşekkür ederim öncelikle. Kod yazma veya düzenleme konusunda temel olarak bilgi sahibiyim bu yüzden sizden bir konuda yardım isteyeceğim. Mesela burda birden çok sınav sonucu görüntüleme yazılmış ama benim istediğim öğrenci numarayı girdiği zaman tek bir sınav sonucu görmesi. Örneğin numarası 150, yazdı girdi. SONUÇ: 58 yazacak. Ve bunu yaklaşık 23-24 öğrenci için yapmak istiyorum nasıl düzenleyebilirim acaba?
çok basit
kod kısmında
$sinavkatari[“asinavi”]=array(“123321123″=>”60”);
$sinavkatari[“bsinavi”]=array(“123456789″=>”80″,”123321123″=>”50″,”111111111″=>”20”);
$sinavkatari[“csinavi”]=array(“123456780″=>”50″,”123321123″=>”40”);
$sinavkatari[“dsinavi”]=array(“123456781″=>”75″,”123321123″=>”60”);
bölümünü silin ve tek sınav olarak bırakın.
$sinavkatari[“sınavınızın adı”]=array(“birinciogrencino”=>”notu”,”ikinciogrencino”=>”notu”, .. );
bu kadar 😉
Not: Bu sistem sınıf ortalaması ve öğrencinin kaçıncı sırada olduğuna dair istatistikte vermektedir. Dilerseniz fonksiyonu silerek iptal edebilirsiniz
ilginiz için çok teşekkür ederim tam istediğim gibi oldu elinize sağlık 🙂
İşinize yaradı ise ne mutlu bana 🙂
İyi çalışmalar dilerim
Kardeşim 1 haftadır aramadığım forum kalmamıştı bu tarz bişey için. Sen biraz daha gelişmişini paylaşmışsın bile. Tebrikler. Benim tek isteğim yukardaki arkadaşın istediği gibi bişey ama hangi kodları sileceğimi bilemedim (kodlamam html düzeyinde). Dediğin satırları silerek sınavı teke indirdim. Şimdi ortalamayı ve sıralamayı iptal etmek istiyorum. Yani öğrenci nosunu girsin ve sadece notunu görsün o kadar. Zaten tek sınav olacak. Gerçekten çok makbule geçecek. Hangi kodları silersem bu olur?
ilginiz için teşekkür ederim
echo $ky." vize notunuz:".$arr[$no]." ".ortalamavesira($arr,$no)."< (br) />";
satırını
echo $ky." sınav notunuz:".$arr[$no]."< (br) />";
ile değiştirin yeterli olacaktır. sadece sınav notunu gösterir o zaman.
İyi çalışmalar dilerim
not: br komutu html olduğu için yorumda görüntülenemiyor. bu yüzden br yi (br) ile değiştirerek yazdım yukarıya. siz çalıştırmadan önce üstteki kodda yer alan (br)–>br şeklinde değiştirin.
Tekrar merhabalar Çağlar Bey,
Belirttiğiniz gibi (br’ye de dikkat ederek) kodu değiştirdim ama hata veriyor:
“Parse error: syntax error, unexpected ‘>’ in /home/yazdim/public_html/demo/otomasyon.php on line 55”
55.satır bu değişikliğin yapıldığı satır.
tırnaklardan birini silmeyi unutmuşum yorumda yazdığım kodda.
şu şekilde deneyebilir misiniz? (son hali şöyle)
echo $ky.” sınav notunuz:”.$arr[$no].”< (br)/>“;
Teşekkür ederim. Şimdi çalıştı. Program gerçekten çok basit ve temiz çalışıyor. Kasmıyor. 1000e yakın girdi ekledim dosya en fazla 200kb oldu. Sunucuya da yük getirmiyor. Ancak ben okul nosunun yanına adı soyadı, tekrar öğrenci numarasını ve notunu ekledim ki sorgu sonucunda öğrenci nosu tekrar çıksın diye. Örnek
$sinavkatari[“A Sınavı”]=array(“084400557″=>”Öğrenci Adı: Asiyye ÖnderÖğrenci No: 084400557Notu: 82”,);
Ben alt alta çıksın istediğim için öyle aralara satır başı ekledim.
Burda öğrenci no’sunu tekrar yazmadan sonuçta çıkartabilir miyiz?
Umarım html kodları yorumu etkilemez…
Ogr no cikacak yere %no% gibi icerikte gecmeyen bir bilgi eklersiniz yazdirmadan once de %no% yi ogrenci no ile replace edersiniz bu en basit cozum. Str_replace komutunu bir inceleyin derim
emeğinize sağlık hocam