Php Mysql Satır Birleştirme

Mysql veritabanımdaki 2 tablo(personel_kartlari,personel_giriscikis)yu birleştirip ekrana istediğim verileri while döngüsüyle yazdırabiliyorum. Fakat personel_giriscikis tablosu ektede göreceğiniz gibi sütun olarak sadece 1 giriş ve bir çıkış(öğle arası) tutuyor. Eğer 3. defa giriş yaptığında(Öğle dönüşü) yeniden bir satır oluşturuyor. veritabanın çalışma mantığı bu şekilde. benim yapmaya çalıştığım listelerken 'personel_id' birden fazla olan kayıtları birleştirip tek hale getirdikten sonra personelin giriş çıkışlarını alt alta yazsın biraz karışık oldu ama resimde incelerseniz daha iyi anlarsınız. Yardımlarınız için şimdiden teşekkür ederim...

mysql_query;

select * from personel_kartlari inner join kodlar_departman on personel_kartlari.departman_kod=kodlar_departman.kod inner join personel_giriscikis on personel_kartlari.id=personel_giriscikis.personel_id where personel_giriscikis.tarih='2016.12.08'personel_giriscikis.personel_id


Php:
 

while($referans_dizi = mysql_fetch_array($referans_cek1)) {   
  $say ++;
  echo "<tr class='odd gradeX'>
          <td>{$say}</td>
          <td>{$referans_dizi['kartno']}</td>
          <td>{$referans_dizi['adi'] } {$referans_dizi['soyadi'] }</td>";
    echo" <td>";   
      echo "{$referans_dizi['giris_saat']}";
      echo" </br>"; 
    echo"</td>";
    echo" <td>";
      echo "{$referans_dizi['cikis_saat']}";
      echo" </br>"; 
    echo"</td>";
    echo" <td>"; 
      echo "{$referans_dizi['aciklama']}";
    echo"</td>";
}



raporlama şeklim yukarıdaki gibi olması gerekiyor. Personel bir günde 1 defa giriş çıkış yaparsa fatih personeldeki gibi günde birden fazla giriş çıkış yaparsa samet personel deki gibi..

Hangi konuda yardım istiyorsun; HTML kısmında mı, PHP kısmında mı?

html yi php kapsamında biçimlendireceğimiz için ikisini ayrı ayrı tutmamız imkansız,o yüzden iki taraflı yardıma ihtiyacım var

Yani şuan personel_giriscikis tablosundaki verileri listelediniz geriye HTML kısmında biçimlendirme mi kaldı?

php de de sıkıntı yok html de yalnız benim istediğim personel_giriscikis tablosunda aynı 'kartno' dan birden fazla olabiliyor eğer tek olursa sıkıntı yaşamadan çekebiliyorum ama birden fazla giriş çıkış lar da resimde çizdiğim gibi abdulsamet personelin düzeninde olması lazım yani aynı ismi teke bindirip karşısına hangi saatlerde giriş çıkış yaptığını tek bir <td> tag ında yazdırması gerekiyor. Sorun da bu zaten 

Çalışmana uygun bir örnek yaptım. Aşağıdaki kodları kullanabilrirsin.

Demek İstediğim Anlaşılmamış veya ben anlatamadım. Sorunu çözdüm demek istediğim bu tabloyu php ye döküp döngü içerisinde çoğaltmak orası basit demeyin 1 ay uğraştım. Örnek kodları paylaşacağım inşallah başka bir arkadaşa yardımcı olurum...

<?php
						   $sql = mysql_query("SELECT B.*,A.*,C.*,(SELECT COUNT(personel_id) FROM personel_giriscikis  WHERE personel_id=A.personel_id AND tarih=A.tarih) AS jumlah FROM personel_giriscikis A inner join personel_kartlari B on A.personel_id=B.id inner join kodlar_departman C on B.departman_kod=C.kod where A.tarih='2016-11-23' ORDER BY A.personel_id ");
$no = 1;
$jum = 1;
				      				  
	  					
							while($row = mysql_fetch_array($sql)) {
echo "  <tr class='odd gradeX'>";

if($jum<=1) {
echo "<td align='center' rowspan='{$row['jumlah']}'>$no</td>";
  echo "<td align='center' rowspan='{$row['jumlah']}'>{$row['jumlah'] }</td>";
	echo "<td rowspan='{$row['jumlah']}'>{$row['adi'] } {$row['soyadi'] }</td>";
 	 $jum = $row['jumlah'];     
     $no++;  
}else{
	  $jum = $jum - 1;
	    
         
	}               
						  
						  echo" <td>{$row['giris_saat']}</td>";    
						  echo "<td>";                         
						  echo "{$row['cikis_saat']}";
						  echo "</br>"; 
						  echo"</td>"; 
				          echo "<td>";                   
						  echo "{$row['aciklama']}";
                          echo "</td>";
							  
	}
							
							?>

Burda önemli olan sql kodu ve tabloyu döngüye sokarken yapmak istediğini dökebilmek

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git