![]() |
|
|||
|
Bir tabloda öğrenci bilgilerini tutuyorum. öteki tabloda da devamsızlık işlenecek dersleri ve tarihi.
Diyelim sınıfta 10 öğrenci var. ve devamsızlığın girilcegi öğrenciler ekrana geldi. bunların yanında da hangi derse devamsızlık işlenecegi var. 10 öğrencinin hepsi veya bir kısmı veya bir tanesi hangi dersten devamsız ise o alana D harfi koyuluyor. Fakat sadece en baştaki öğrenci işleniyor database'e. bütün D olanların işlenmesi için nasıl bi kod yazılabilir. örnek toplu bilgi girişi kodu varsa adresi filan yazabilrseniz sevinirim. tesekkurler Sibel. |
|
|||
|
Dediklerin dogrultusunda cok guzel bi sekilde calıştı kod her şey süper derken oğrenci numaralarını aldıramadım bi türlü 2.sayfaya.
senin dedigin radio butonlu filan onu anlamadım ama bişiler yaptım.sıralaması dogru ama en son numaralar boş taşınıyor. su radio butonu az daha acabilirsen sevinirim. çünkü anladıgım kadarıyla o radio butonda hangi öğrenciye devamsızlık giriyorsa devamsızlık tablosuna sırf onları ekliyor. benim hazırladıgım kod; sınıfta kaç öğrenci varsa onları ekliyor devamsızlığı olsa da olmasada. |
|
||||
|
Öğrenci1 <input type="text" name="ogrenci" value="D">
Öğrenci2 <input type="text" name="ogrenci" value=""> Öğrenci3 <input type="text" name="ogrenci" value="D"> öğrenci1 ve öğrenci3 devamsız olmasına rağmen name bolumleri aynı olduğu için sadece ogrenci1 devamsız kabul edilir. Sen şunun gibi birşey deneyebilirsin. Öğrenci1 <input type="text" name="lise1_1" value="D"> Öğrenci1 <input type="text" name="lise1_2" value=""> Öğrenci1 <input type="text" name="lise1_3" value="D"> name="lise1_1" kısmı lise1'nci sınıftakiler ve (_)'den sonrası ise öğrenci id bölümü.Verileri devamsizlik tablosuna eklerken de $sorgu = mysql_query("select * from ogrenciler where sinif_adi='lise1'"); while($veri = mysql_fetch_row($sorgu)) { echo $veri[1] ." ".$veri[2]." <input type=\"text\" name=\"$veri[4]".$veri[0]."\">"; } Devamsızlıkları incelerken de tekrar lise1'deki tüm öğrencilerin id numaraları çekilir, lise1_$id şeklinde birleştirilerek bu değişkenin değeri D'ye eşitse devamsızlıklara ekle denir.. $sorgu = mysql_query("select * from ogrenciler where sinif_adi='lise1'"); while($veri = mysql_fetch_row($sorgu)) { if($HTTP_POST_VARS["lise1_$veri[0]"] == "D") ..... } Umarım anlatabilmişimdir.. |
|
|||
|
Eğer devamlılık tablosundaki ders sayısı sabitse ikinci bir tabloya gerek yok diye düşünüyorum.
Şimdi; öğrenci tablomuzda; id,isimsoyad,numara,sınıf,ders1,ders2......dersx şeklinde alanlar olduğunu varsayalım. Giriş yapacağınız sayfaya şöyle bir kod yazın; <Form action="sayfa.php"> <?PHP // DB Bilgileri $usr = 'kullanıcı_adı'; $pwd = 'kullanıcı_şifre'; $db = 'DB_Adı'; $host = "localhost"; // Bağlanalım $cid = mysql_connect($host,$usr,$pwd); if (!$cid) { echo("HATA: ".mysql_error()."\n"); die;} // Her seferinde Db için uğraşmayalım function Db($SQL,$yer='Hiçbiryer'){ global $db,$cid; $retid = mysql_db_query($db, $SQL, $cid); if (!$retid) { echo "<B>SQL HATASI ($yer):</B>".mysql_error(); echo "<Hr>$SQL<Hr>"; mysql_close($cid); exit; } return $retid; } if($submit=='Kaydet'){ // Eğer submit e basıldıysa gelenleri kaydet $adet=sizeof($ogrenci); // $ogrenci form dan gelen bir array dır for($i=0;$i<$adet;$i++){ // Bu öğrenci kayıtlımı? $mesaj = "$numara[$i] no lu, $sınıf[$i] sınıfı öğrencisi $ogrenci[$i] bulunamadı.<Br>\n"; $sorgu = Db("SELECT * FROM tabloadı WHERE id=$id[$i];"); if(mysql_num_rows($sorgu)==0){ // Bu öğrenci bulunamadıysa echo $mesaj; } else { // bulunduysa $sql = "UPDATE tabloadı SET isimsoyad='$ogrenci[$i],sınıf='$sinif[$i]',numara='$numara[$i]',ders1='$ders1[$i]' WHERE id=$id[$i];"; // SQL hazır. Çalıştıralım $sorgu = Db($SQL,'Kayıt Güncelleme'); } } // Yeni Kayıt Varsa ekleyelim if(trim($yeniogrenci.$yeninumara.$yenisınıf)!=''){ $sql = "INSERT INTO tabloadı (isimsoyad,sınıf,numara,yders1,yders2,yders3) VALUES ('$yeniogrenci,'$yenisinif','$yeninumara',yeniders 1='$yders1',yders2,yders3);"; // SQL hazır. Çalıştıralım $sorgu = Db($SQL,'Kayıt Ekleme'); } } // İşlem olsun olmasın Tabloyu listeleyelim ve giriş formunu oluşturalım $i=0; $sorgu = mysql_query('select * from ogrenciler;'); while($satır = mysql_fetch_row($sorgu)){ echo '<Input Type="hidden" Name="id['.$i.'] Value="'.$satır[0].'">'; echo '<Input Type="Text" Name="ogrenci['.$i.'] Value="'.$satır[1].'">'; echo '<Input Type="Text" Name="numara['.$i.'] Value="'.$satır[2].'">'; echo '<Input Type="Text" Name="sinif['.$i.'] Value="'.$satır[3].'">'; echo '<Input Type="Text" Name="ders1['.$i.'] Value="'.$satır[4].'">'; ....... echo '<Input Type="Text" Name="dersx['.$i.'] Value="'.$satır[x].'">'; echo "<Br>\n"; $i++; } // Yeni kayıt eklemek isteyebiliriz. Onun içinde bir giriş satırı yapalım echo '<Input Type="Text" Name="yeniogrenci">'; echo '<Input Type="Text" Name="yeninumara">'; echo '<Input Type="Text" Name="yenisinif">'; echo '<Input Type="Text" Name="yders1">'; ....... echo '<Input Type="Text" Name="ydersx">'; echo "<Br>\n"; echo '<Input Type="submit" name="submit" value="Kaydet">'; echo '</Form>'; ?> Yukarıdaki kod u denemedim. Ama sanırım fikir vermek için yeterli. Basitçe; Form içine koyduğunuz her obje, PHP ye bir değişken olarak gelir. Eğer Objenin adını $değişken[1] şeklinde yazarsanız PHP için $değişken adında bir Array ın 1 nolu değeri olur. Submit tuşu da bir objedir ve verdiğiniz isimle PHP de bir değişken olarak kullanabilirsiniz. Bu kodda submit tuşunun adı gene submit kafanız karışmasın. Eğer submit e basılmışsa $submit değişkeni "Kaydet" değerini alıyor. Kod bu durumda gelen verileri kaydediyor. Eper $submit değişkeni "Kaydet" e eşit değilse sayfa ilk kez çağrılmış demektir. bu durumda sadece tabloyu listeliyor. Listelerken her kayıt için isimleri; id[x] ogrenci[x] numara[x] sınıf[x] ders1[x] ..... olan "Input" lar oluşturuyor. en sona bu array lardan bağımsız yeniogrenci girişini ekliyor. Form aynı zamanda var olan bilgilerle dolu olarak geliyor. Form u submit ettiğinizde önce array ın kaç satır olduğuna bakıyor ve array satırı kadar bir döngü içinde, kaydın var olup olmadığına bakıyor, var ise gelen bilgileri kaydediyor, yok ise hata mesajı verip diğer satıra geçiyor. Döngü bitiminde sona eklediğimiz girişte bilgi olup olmadığına bakıyor ve var ise tabloya ekliyor. Umarım yardımı olur.. |
![]() |
| Seçenekler | |
| Stil | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Herkeze Aynı Anda Pm atma? | vaio | Vbulletin VbSEO | 1 | 2006-05-06 10:58 |
| Tüm sayfalara birden kod ekleme | favorites | Webmaster Genel Konular | 16 | 2006-04-10 20:00 |
| 100den fazla aRama motoruna aYnı anda Kayıt | xaereo | Webmaster Genel Konular | 3 | 2006-03-24 18:48 |
| Adbrite ile Adenge aynı anda | Cemoo | Internetten Para | 0 | 2006-01-14 20:06 |
| Yüzlerce kişiye aynı anda mesaj.. | turk40com | Yeni Site Tanıtımları | 0 | 2004-01-07 16:15 |