İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

birden fazla kaydı aynı anda ekleme--ACİL

S

sibelkocan

Misafir
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.
 
E

Ergin2

Misafir
Öğrencilerden hepsi veya bir kısmı veya bir tanesi hangi dersten devamsız ise o alana D harfi koyuluyor fakat sadece en baştaki işleniyorsa öğrenci bilgi kutularının tümünün adını aynı yaptığınızdan kaynaklanmaktadır.
Yani <input type="text" name="ogrenci"> yazmış olmalısınız büyük ihtimalle. Eğer birden fazla öğrenci için D harfi koyduysanız sadece en bastaki işlenir çünkü aynı alan adı için birden fazla değer var..

Size aşağıdaki gibi bir tablo hazırlamanızı önerebilirim.

Create table ogrenciler(
id int not lisanssız auto_increment,
ad varchar (50) not lisanssız,
soyad varchar (50) not lisanssız,
numara int not lisanssız,
sinif_adi varchar (15) not lisanssız,
Primary key (id)
);

create table devamsizlik(
sinif_adi varchar (15) not lisanssız,
ogrenci_id int not lisanssız,
devamsizlik_tarihi varchar (25) not lisanssız,
devamsiz_oldugu_ders varchar (50) not lisanssız,
);

ogrenciler tablosuna okuldaki tum ogrencilerin bilgisini girin. Bir php kodu yazın ve bir sınıftaki tüm öğrencilerin listesini isteyin.

Select * from ogrenciler where sinif_adi='lise1'

gibi. Her gelen kaydı yanında bir radio button name kısmı ogrenci_id numarasına eşit olan ve check edildiğinde de geriye öğrenci_id numarasını gönderen bir sayfa oluşacak.. Sayfanın sonunda bir hidden alan olacak ve lise1 sınıfı için kaç öğrencinin kaydı çekilmişse o sayı bulunacak. Mesela 50. Siz o gün için o listeden gelmeyen öğrencileri seçeceksiniz ve tamam butonuna basınca while döngüsü ile 1'den başlayarak 50'ye kadar (hidden alan ile gelen sayıya kadar) değişkenlerin değerlerinin kendilerine eşit olanlar o gün gelmediği anlaşılarak devamsizlik tablosuna öğrenci id'sinin gelmediği gün ve ders kaydı eklenicek.

Yani
$i = 1;
while ($i >= 50){
if(!isset($i)){
mysql_query("insert into devamsizlik values('lise1','25','13 Aralık Cuma','Felsefe')");

}
} // felsefeyi pek anlayamazdım da :)

25. id numaralı öğrenci cuma günü felsefeden kaçmış..

Bu haliyle belli bir dersten kaçanların, herhangi bir gün itibariyle devamsiz olanların, ilk tablodan öğrenci adı verilerek alınan ogrenci_id numarası ile ikinci tabloda tüm gelmediği günler vs. öğrenilebilir.

Kolay gelsin...
 
S

sibelkocan

Misafir
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.
 
E

Ergin2

Misafir
Öğ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..
 
B

birhan

Misafir
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',yeniders1='$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..
 

murat767376

0
İyinet Üyesi
Katılım
19 Ocak 2011
Mesajlar
2
Reaction score
0
ARAKADAŞLARA ACİLEN LAZIM::

Arkadaslar internet proğramcılığı dersim düşük geliyo hocam ödev verdi e okuldaki gibi bir devamsızılık gibi bir php kodu hazıralyıp gelirsen sözlünü yüksek vericem yalvarıyorum yardımcı olun bütün uğraslarıma rağmen bişe yapmamadım yalvarıyorum son 2 günüm kaldı:ağla::ağla::ağla::ağla::ağla::ağla:
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst