veritabanında resime göre veriyi yazdırma.
slm arkadaşlar phpden bir basit haber script yapmak istedim takıldığım nokta veritabanında
NO
BASLIK
METIN
RESIM1
.
.
.
.
RESIM15 gibi tablolarım var.. bunları oku.php den çekip okutmak isterken girdiğim resim sayısı kadar yani RESIM1 DEN RESIM15 e kadar resim dosyası uzantısı varsa yazdırsın veya RESIM1 den RESIM15 e kadar veritabanında veri varsa yazdırsın yoksa yoksa hiç bir şey yazdırmasın.
<?PHP
include("ayar.php");
$baglanti = mysql_connect($dbhost,$dbkullanici,$dbsifre) or die("Veritabanına bağlanılamadı.");
@mysql_select_db($db);
$NO=intval($_GET['NO']);
$zone=mysql_fetch_array(mysql_query("select * from haber where no='$no'"))
?>
<table cellpadding="0" cellspacing="0" width="660">
<!-- MSTableType="layout" -->
<tr>
<td height="123" align="left" valign="top"><? ECHO "<img border=\"0\" src=\"$zone[RESIM1]\" width=\"242\" height=\"200\" align=\"left\"><b>$zone[BASLIK]</b>"; ?>
</p>
<? echo $zone['METIN']; ?>
</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="660">
<!-- MSTableType="layout" -->
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM1]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM2]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM3]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM4]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM5]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM6]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM7]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM8]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM9]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
<tr>
<td height="12" align="center"><?php ECHO"<p align=\"center\"><img src=\"$zone[RESIM10]\" width=\"80\" height=\"80\">" ?>
</td>
</tr>
</table>
elimde 10 tane resim var bunları sırayla RESIM1 den RESIM10 a kadar giriyorum gösteriyor eğer RESIM15 e kadar yazdırmış olsam 5 resim daha giremeyeceğimden dolayı bu seferde 5 tane boş resim görüntüsü çıkıyor.
Php
doğru anladıysam veritabanında 5 tane daha sütun oluşturup içine bilgi yazman gerekiyor.
Php
Arkadaşım anladığım kadarıyla veritabanında 15 tane resim alanı tutuyorsun ve kaç tanesinde resim linki varsa o kadarını ekranda göstermek istiyorsun. Öncelikle söylemeliyim ki bu kullanım yanlış. Bunun yerine bir resim tablosu oluşturup resimleri oradada konu ile ilgili ID ile eşleştirerek tutmalısın. Böylelikle konuya ait resimleri tek bir sorgu ile kolayca alabilirsin. Gelelim soruna.
Veritabanından değerleri okuttun. Elinde ilgili satır var.Sen sadece resim 10 tane ise son 5 taneyi yazmasın istiyorsun. Bunu if ile kontrol edebilirsin.
while ($veriler = mysql_fetch_assoc($sorgu))
{
$resim1 = $veriler["resim1"];
$resim2 = $veriler["resim2"];
$resim3 = $veriler["resim3"];
$resim4 = $veriler["resim4"];
$resim5 = $veriler["resim5"];
...
$resim14 = $veriler["resim14"];
$resim15 = $veriler["resim15"];
if($resim14 != "")
{
echo $resim14;
}
if($resim15 != "")
{
echo $resim15;
}
}
if cümlecikleri ile resimlerin dolu boş olduğunu kontrol edip yazdırabilirsin.