Webmaster Forumu

Geri git   Webmaster Forumu > Webmaster Kaynak Eğitim Tanıtım Hizmet > İnternet Programlama ve Kodlama > PHP

PHP PHP & PHP Hızlandırıcılar

Cevapla
 
LinkBack Seçenekler Stil
  #1 (permalink)   iTrader 
Alt 2002-12-13, 11:09
Junior Member
 
Üyelik tarihi: Apr 2003
Mesajlar: 10
Tecrübe Puanı: 0
iTrader: %0/0
sibelkocan is an unknown quantity at this point
Standart

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.
Alıntı ile Cevapla

  #2 (permalink)   iTrader 
Alt 2002-12-13, 20:40
Ergin2 - ait Kullanıcı Resmi (Avatar)
Junior Member
 
Üyelik tarihi: Dec 2003
Nerden: istanbul
Mesajlar: 29
Tecrübe Puanı: 0
iTrader: %0/0
Ergin2 is an unknown quantity at this point
Standart

Öğ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 null auto_increment,
ad varchar (50) not null,
soyad varchar (50) not null,
numara int not null,
sinif_adi varchar (15) not null,
Primary key (id)
);

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

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...
Alıntı ile Cevapla

  #3 (permalink)   iTrader 
Alt 2002-12-14, 12:56
Junior Member
 
Üyelik tarihi: Apr 2003
Mesajlar: 10
Tecrübe Puanı: 0
iTrader: %0/0
sibelkocan is an unknown quantity at this point
Standart

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.
Alıntı ile Cevapla

  #4 (permalink)   iTrader 
Alt 2002-12-15, 20:34
Ergin2 - ait Kullanıcı Resmi (Avatar)
Junior Member
 
Üyelik tarihi: Dec 2003
Nerden: istanbul
Mesajlar: 29
Tecrübe Puanı: 0
iTrader: %0/0
Ergin2 is an unknown quantity at this point
Standart

Öğ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..
Alıntı ile Cevapla

  #5 (permalink)   iTrader 
Alt 2002-12-23, 14:44
Junior Member
 
Üyelik tarihi: Feb 2003
Mesajlar: 20
Tecrübe Puanı: 0
iTrader: %0/0
birhan is an unknown quantity at this point
Standart

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..
Alıntı ile Cevapla

  #6 (permalink)   iTrader 
Alt 2002-12-24, 11:28
Junior Member
 
Üyelik tarihi: Apr 2003
Mesajlar: 10
Tecrübe Puanı: 0
iTrader: %0/0
sibelkocan is an unknown quantity at this point
Standart

cevaplarınıza tesekkurler halledebildim sonunda.
Alıntı ile Cevapla

Cevapla

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


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 13:08 .


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0

Firefox