Merhaba. Bir tablodan diğerine veri çekmek istiyorum. Örnek verecek olursam;
Veritabanımda iki tane tablo mevcut üyeler ve saatler.
Üyeler tablomdaki sütünlar id tckimlik sefid
Sefid sütününda yazan id kişinin şefinin id'si oluyor. Örneğin "1 12312312312 0 ve 2 12312312313 1" şeklinde iki kaydım var ikincisinin şefi birinci kayıt olmuş oluyor.
Saatler tablosundaki sütunlar id tckimlik girişsaati şeftc şefinşefitc
Üyelerden birisi iş yerine giriş saatini ve tc'sini form ile gönderdiğinde bu üyenin tc'sini üyeler tablosundan sorgulatıp sefid sütununda yazan id'ye göre şefinin tckimlik numarasını saatler tablosundaki şeftc sutünuna yazdırmak ve varsa şefinin şefini de aynı şekilde şefinşefitc sütununa yazdırmak istiyorum.
Bu konuda yardımlarınızı bekliyorum.
Bir tablodan diğerine veri çekme
2
●559
- 08-10-2014, 10:39:49
- 08-10-2014, 23:37:22@KapitalWeb; verdiğiniz yapıya göre basit bir örnek hazırladım örnek aşağıda ama bazı önerilerde bulunmak istiyorum.
- Verdiğiniz yapıda aslında her üyenin id si belli olduğu için her tabloda ayrı ayrı tcno tutmanıza gerek yok. Tc kimlik no yu sadece uyeler tablosunda tutup gerektiğinde id ile sorgulayıp oradan çekebilirsiniz diğer tablolarda sadece üye id yada sef id tutabilirsiniz.
- Verdiğiniz yapıda en alt kademenin en fazla 2 tane şefi olabilir eğer üst üste 3 şefi varsa sistem çalışmaz. Eğer hazırlayacağınız sistemde sınırsız bir şekilde şef mantığı varsa örneğin: şef, şefin şefi,şefin şefinin şefi, şefin şefinin şefinini şefi ...... gibi sınırsız bir yapı kurmak istiyorsanız saatler tablosunda tek bir sefid tutmanız ve php kodlama yapınızı recursive hale getirmeniz gerekir. Googleda recursive fonksiyon diye aratırsanız birçok kaynağa ulaşabilirsiniz.
Buyrun verdiğiniz yapıya göre size fikir vermesi açısından hazırladığım basit bir örnek:
<?php if ($_POST) { $tcno = $_POST['tcno']; $saat = $_POST['saat']; //formdan gelen tcno lu üyenin şefidsini aldık $sql1 = mysql_query("Select sefid From uyeler Where tckimlik='$tcno' Limit 1"); list($sefid) = mysql_fetch_array($sql1); // //şefin tckimlik numarasını aldık $sql2 = mysql_query("Select tckimlik From uyeler Where id='$sefid' Limit 1"); list($seftcno) = mysql_fetch_array($sql2); // //sefidsi 0 olan en üstteki şef olduğu için şefidsi sıfır değilse bir üstteki şefinde id sini alıyoruz yani şefin şefi. if ($sefid != '0') { $sql3 = mysql_query("Select sefid From uyeler Where id='$sefid' Limit 1"); list($sefinsefiid) = mysql_fetch_array($sql3); //şefin şefinin tckimlik numarasını aldık $sql4 = mysql_query("Select tckimlik From uyeler Where id='$sefinsefiid' Limit 1"); list($sefinsefitcno) = mysql_fetch_array($sql4); // } // //saatler tablosuna ilk kayıtı ekliyoruz $ekle = mysql_query("Insert Into saatler (tckimlik, girişsaati, şeftc, şefinşefitc) values ('$tcno', '$saat', '$seftcno', '$sefinsefitcno')"); // } ?> <form action="" method="post"> Tc No: <input type="text" name="tcno" /> Saat: <input type="text" name="saat" /> </form>