Php de Kayıt ve Arama

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Php de Kayıt ve Arama

Mesaj gönderen SurVefa »

Arkadaşlar gerekli cevabı bir türlü bulamadım :(
Şimdi benim Ögrenci Adı
Nosu
Vize Notu
Final notu
Sonuç

GÖnder
alanları var vize ve final girildikten sonra bunu php de sonuça ikisinin ortalamasını buldurucam. Ve bunu daha sonra kaydedicem.(Ayrıca Vize,Final ve Sonuç alanlarını İnput Type diye mi tanımlıycam). Kaydettim bilgileri(Örnegin ögenci.txt diye) dosyadan okutup ekrana gösterditicem. Tanımlamalarım dogru sanırım ama kaydetmede sorun var yapamadım :( Birisi yardım ederse sevinecem arkadaşlar.. Çıldırrrdııımmm :shock:
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
onaydin
Üye
Mesajlar: 202
Kayıt: 07 Şub 2006 02:30

Mesaj gönderen onaydin »

Öğrencilerin listesi veritabanında tutuluyorsa, hocalarda sınav sonuçlarını txt olarak vermişse şu şekilde yapılabilir. Önce text içinde bilgi okunacak, bu bilgi okunurken alt satırına da veritabanında bu kayıtla eşleşen öğrencinin olup olmadığı sorgulanacakki tutarlı bir sonuç olup olmadığı (hocanın noyu doğru girdiği vs.) anlaşılsın. Sonra göndere basıldığında kayıtları veritabanına yazacak.

input ları oluştururken ad[] şeklinde açacaksınız bu şekilde veriyi dizi içinde tutmuş oluyorsunuz.
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Mesaj gönderen SurVefa »

bunu kod olarak yazarsanız çok iyi olur...
yardımcı olursanız sevinirim:(
hala beceremedim.
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
onaydin
Üye
Mesajlar: 202
Kayıt: 07 Şub 2006 02:30

Mesaj gönderen onaydin »

Bir kod yazabilmek için txt dosyasının içinde ne olduğunu, hangi formatta tutulduğunu bilmemiz lazım. İki satır örnek veri kopyalarsanız yardımcı oluruz.
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Mesaj gönderen SurVefa »

galiba soruyu yanlış anladın. Önce oraya kaydedicem zaten. Onu yapamadım daha göstermeyi nası yapayım ki. Ufff canım sıkılıyor ya. Niye zor bu işler böyle ya.
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
onaydin
Üye
Mesajlar: 202
Kayıt: 07 Şub 2006 02:30

Mesaj gönderen onaydin »

Kod: Tümünü seç

<form name="forma" method="post" action="<?=$PHP_SELF?>">
<?
	while($i < 50) {
		$i++;
?>
<input type="text" name="ad[]" />
<input type="text" name="no[]" />
<input type="text" name="vize[]" />
<input type="text" name="final[]" /> <br />
<?
	}
?>
<input type="submit" name="Submit" value="Gönder" />
</form>

Kod: Tümünü seç

<?
	if($_POST['Submit']) {
		foreach($_POST['ad'] as $index => $deger) {
			if(strlen($deger)>3) {
				$vize = (int)$_POST['vize'][$index];
				$final = (int)$_POST['final'][$index];
				$ortalama = ($vize * 0.4) + ($final * 0.6);
				$metin .= "$deger,".$_POST['no'][$index].",$vize,$final,$ortalama \r\n";
			}
		}
		$fp = fopen("notlar.txt","w");
		fwrite($fp,$metin);
	}
?>
İşini görecek basit bir kod
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Mesaj gönderen SurVefa »

İkincisini çalıştırdıgım zaman şöyle bir hata veriyor. Nasıl düzeltebilirim. Abi saolasın valla kapı açtın burdan çok ama çok teşekkürler. Allah bin kere razı olsun. İkinciyi de yaparsam tamamdır. Ya bu PHP niye bu kadar karışık böyle? :( Tekrar tekrar TEŞEKKÜRLER ...

Hata :

Kod: Tümünü seç

$deger) { if(strlen($deger)>3) { $vize = (int)$_POST['vize'][$index]; $final = (int)$_POST['final'][$index]; $ortalama = ($vize * 0.4) + ($final * 0.6); $metin .= "$deger,".$_POST['no'][$index].",$vize,$final,$ortalama \r\n"; } } $fp = fopen("notlar.txt","w"); fwrite($fp,$metin); } ?> 
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Mesaj gönderen SurVefa »

Kod: Tümünü seç

if($_POST['Submit']) { 
      foreach($_POST['ad'] as $index => $deger) { 
         if(strlen($deger)>3) {
Bu satırda neyi anlatmak istiyoruz. Anladıgım kadarıyla eger gönder butonuna basıldıgı anda ada göre önce bul. Sonra girilen karakter 3 karakterden büyükse işlemleri yapta diyor olmadı abi ya :( !! Acaba Post yerine HTTP post ile mi başlıcaz? Az kaldı bulucam :)
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
onaydin
Üye
Mesajlar: 202
Kayıt: 07 Şub 2006 02:30

Mesaj gönderen onaydin »

Ekrana çıkan hata mesajını yazarsan daha kolay yardımcı oluruz.
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Mesaj gönderen SurVefa »

onaydin yazdı:Ekrana çıkan hata mesajını yazarsan daha kolay yardımcı oluruz.
Abi ekrana çıkan hata mesajı üsttede belirttim zaten budur...

Kod: Tümünü seç

$deger) { if(strlen($deger)>3) { $vize = (int)$_POST['vize'][$index]; $final = (int)$_POST['final'][$index]; $ortalama = ($vize * 0.4) + ($final * 0.6); $metin .= "$deger,".$_POST['no'][$index].",$vize,$final,$ortalama \r\n"; } } $fp = fopen("notlar.txt","w"); fwrite($fp,$metin); } ?> 
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
onaydin
Üye
Mesajlar: 202
Kayıt: 07 Şub 2006 02:30

Mesaj gönderen onaydin »

Aslında burada bir hata mesajı yok. PHP hata olduğu vakit hata kodunu ekrana basar. Hata dediğiniz örnekte PHP kodunu olduğu gibi ekrana basmış, bu durumda ya dosyanın uzantısı .php değildir ve web server dosyayı html olarak algılamaktadır ya da dosyanın uzantısı php olup ilgili kod blogu php taglarının içinde yazılmamıştır. Açıkcası bu dosyayı nasıl oluşturduğunuzu merak ediyorum ama mesajların daha fazla uzamamamsı için kodu tam haliyle gönderiyorum.

Kod: Tümünü seç

<?
	if($_POST['Submit']) {
		foreach($_POST['ad'] as $index => $deger) {
			if(strlen($deger)>3) {
				$vize = (int)$_POST['vize'][$index];
				$final = (int)$_POST['final'][$index];
				$ortalama = ($vize * 0.4) + ($final * 0.6);
				$metin .= "$deger,".$_POST['no'][$index].",$vize,$final,$ortalama \r\n";
			}
		}
		$fp = fopen("notlar.txt","w");
		fwrite($fp,$metin);
	}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>

<body>
<form name="forma" method="post" action="<?=$PHP_SELF?>">
<?
	while($i < 50) {
		$i++;
?>
<input type="text" name="ad[]" />
<input type="text" name="no[]" />
<input type="text" name="vize[]" />
<input type="text" name="final[]" /> <br />
<?
	}
?>
<input type="submit" name="Submit" value="Gönder" />
</form>
</body> 
</html>
yukardaki kod ile web dizininizin içinde bir php dosyası oluşturup, tarayıcıdan http://localhost/dosya.php şeklinde çağırmanız gerekiyor.
Bu dosya dosya kendi bilgisayarınızda yazma yetkiniz olduğundan aynı klasör içinde notlar.txt dye bir dosya oluşturacak. Uzaktakibir web server da çalıştırmayı deneyecek olursanız chmod 755 değilse hata verecek.
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Mesaj gönderen SurVefa »

abi gönülden çok teşekkür ederim. Sonradan ögrendim bende, seni ugraştırdım affedersin. Son sorum bi daha sormucam... Ben ayrıca Arama yaptırmak istiyorum girilen kayıtlarda mesela nosunu girdik mi onla ilgili kayıdı göstersin veya Yok Diye Mesaj versin. Başka hiçbirşey istemiyorum.

Not : Biz bunu Foreign Döngüsü ile çagırsam şartı nasıl belirlicem. Verdigin diger örnege göre yaptım abi ama çok absürd birşey oldu :) Olmazsa yine de teşekkürler abi gönlüne saglık. . .
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Mesaj gönderen SurVefa »

slm arkadaşlar ben dosyadan kayıt okumayı bir türlü beceremedim.
benim kayıtlar txt dostada tutuluyor.
benim bul diye bir buttonum olcak ve yanındada bir text kutusu oraya istediğim kişinin numarasını girdiğimde bana dosyadan o kayda ait isim soyad vize ve final notlarını ve ortalamayı ekranda göstercek.yani tüm kayıtları tarayıp benim yazdığım numaraya ait kaydı ekrana bascak.
kodu yazarsanız cok iyi olur.

Yardımcı olursanız sevinirim.şimdiden teşekkürler...:)
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

Selam.
Size tavsiyem php.net sitesinden php_manual dosyasını çekmeniz.
http://www.php.net/get/php_manual_chm.zip/from/a/mirror
Saygılar.
SurVefa
Üye
Mesajlar: 27
Kayıt: 11 Nis 2006 03:26
Konum: Cennetten

Mesaj gönderen SurVefa »

ahmet_sinav yazdı:Selam.
Size tavsiyem php.net sitesinden php_manual dosyasını çekmeniz.
http://www.php.net/get/php_manual_chm.zip/from/a/mirror
Saygılar.
peki bunun tükçesi yok mu bulamadım da :oops:
Sevmek Gerek, Saymak Gerek.
Akıl Gerek, Fikir Gerek.
Doğru Nedir? Bilmek Gerek.
Önce İnsan Olmak Gerek !!!
Cevapla