v2.5.2
Giriş yap

Php iki tablo birleştirme

Anonim
946 defa görüntülendi

Merhabalar. Basit bir makale sistemim var ;
<?php

								$sorgu = $baglanti->query("select * from ogrenci");
								while ($sonuc = $sorgu->fetch_assoc()) {
									?>
																
										
								
                                <tr class="no-b">
                                    <td class="w-10">
									
                                        <a href='duzenle.php?id=<?php echo $sonuc["id"] ?>'><img src="" alt=""></a>
                                    </td>
                                    <td>
                                        <h6><?php echo $sonuc["adi"] ?></h6>
                                        <small class="text-muted"><?php echo $sonuc["soyadi"] ?></small>
                                    </td>
    bu şekilde anasayfada ogrenci tablosuna ait ad ve soyadı yazdırıyorum burda problem yok.
    Yapmak istediğim işlem resimler tablomdaki öğrenciye ait olan resmi anasayfada tek resim olarak gösterme
    öğrenci tablom ;
    id ad soyad
    
    resimler tablom
    id resim ogrenciID
Cevap yaz
Cevaplar (4)
mehmetozcakir
1163 gün önce

@coder hocam çok teşekkür ederim bu kod işimi gördü

coder
1163 gün önce

Tekrar merhaba.

Bu konuda çok bir bilgim yok ama aşağıdaki şekilde yaparak sonuca ulaştım.
Sayfayı yeniledikçe resim değişiyor.

Daha iyi bir yol bulursam yeniden cevaplandırırım.

<table border="1" cellpadding="2" cellspacing="0">
    <body>
        <tr>
            <td>Resim</td>
            <td>Ad Soyad</td>
        </tr>
			<?php
				$sorgu = $baglanti->query("SELECT * FROM ogrenci");
				while ($sonuc = $sorgu->fetch(PDO::FETCH_ASSOC)) { ?>
					<tr>
						<td>
						<?php
						$sorgu2 = $baglanti->query('SELECT * FROM resimler WHERE ogrenciID = '.$sonuc["id"].' ORDER BY RAND() LIMIT 1');
						$sonuc2 = $sorgu2->fetch(PDO::FETCH_ASSOC);
						?>
							<img src="<?php echo $sonuc2["resim"]; ?>">
						</td>
						<td>
							<?php echo $sonuc["adi"]; ?>
							<?php echo $sonuc["soyadi"]; ?>
						</td>
					</tr>
			<?php } ?>	
    </body>
</table>
mehmetozcakir
1163 gün önce

@coder hocam teşekkür ederim yazdığın şekilde öğrenciye ait 3 fotoğraf varsa 3 ünüde çekiyor sadece 3 taneden rasgele 1 tanesini anasayfada göstermek istiyorum sorgunun sonuna LIMIT 1 yazdığım zamanda resimler tablosundan 1 tane gösteriyor örneğin anasayfada 3 öğrenci ismi varsa 3 resim gelmesi gerekirken 1 resim geliyor.
Resimler tablosunu çoklu resim olayı olduğu için ayırdım.

coder
1164 gün önce

Merhaba.
Aşağıdaki kodu deneyin.

<?php
	$sorgu = $baglanti->query("SELECT * FROM ogrenci INNER JOIN resimler ON ogrenci.id = resimler.ogrenciID");
	while ($sonuc = $sorgu->fetch_assoc()) { ?>
		<tr class="no-b">
			<td class="w-10">
				<a href='duzenle.php?id=<?php echo $sonuc["id"] ?>'><img src="<?php echo $sonuc["resim"] ?>" alt=""></a>
			</td>
			<td>
				<h6><?php echo $sonuc["adi"] ?></h6>
				<small class="text-muted"><?php echo $sonuc["soyadi"] ?></small>
			</td>
		</tr>
<?php } ?>	

Ama bence öğrenci resimlerini ayrı bir tabloda tutmak yerine öğrenci tablosuna bir sütun daha aç resim adında. Ve resimleri orada tut.