Merhaba,
En başta zaten kayıtları çekip array a atıyorsun aşağıda da array i bir daha kullanabilirsin. Bu yüzden ilk arrayda db den gelen bütün kayıtları eklettirdim.
Tek sorguda işini çözecektir yazdığına göre ..
<?php
$uruncek = mysql_query("SELECT * FROM urunler WHERE urunsira=1 ORDER BY urunid ASC")or die(mysql_error());
while($mm = mysql_fetch_array($uruncek)){
$yenidizi[] = $mm;
}
$dizi = array_chunk($yenidizi,4,true);
for($a=0;$a < count($dizi); $a++){
// echo $dizi[$a].'<br>';
if($a == 0){
echo '<div class="item active">
<ul class="thumbnails">';
}else{
echo '<div class="item">
<ul class="thumbnails">';
}
foreach($dizi[$a] as $cek){
//$id = $dizi[$a][$b];
$urunadi = $cek['urunadi'];
$urunseo = $cek['urunseo'];
$urunfiyat = $cek['urunfiyat'];
$urunresim = $cek['urunresim'];
echo '<li class="span3">
<div class="thumbnail">
<i class="tag"></i>
<a href="'.$urunseo.'"><img src="resim/thum/'.$urunresim.'" alt=""></a>
<div class="caption">
<h5>'.substr($urunadi,0,35).'</h5>
<h4><a class="btn" href="'.$urunseo.'">İNCELE</a> <span class="pull-right">'.$urunfiyat.'.00TL</span></h4>
</div>
</div>
</li>';
}
echo '</ul>
</div>';
}Şahsen bana sorsan ne yaparsın diye kodum aşağıda.
$uruncek = mysql_query("SELECT * FROM urunler WHERE urunsira=1 ORDER BY urunid ASC")or die(mysql_error());
while($mm = mysql_fetch_array($uruncek)){
$records[] = $mm;
}
$count = count($records);
$i=0;
foreach($records as $key => $cek) {
if($i==0) {
echo '<div class="item '.(($key==0) ? 'active':'').'">
<ul class="thumbnails">';
}
$urunadi = $cek['urunadi'];
$urunseo = $cek['urunseo'];
$urunfiyat = $cek['urunfiyat'];
$urunresim = $cek['urunresim'];
echo '<li class="span3">
<div class="thumbnail">
<i class="tag"></i>
<a href="'.$urunseo.'"><img src="resim/thum/'.$urunresim.'" alt=""></a>
<div class="caption">
<h5>'.substr($urunadi,0,35).'</h5>
<h4><a class="btn" href="'.$urunseo.'">İNCELE</a> <span class="pull-right">'.$urunfiyat.'.00TL</span></h4>
</div>
</div>
</li>';
if($i%4==0 || $i==$count)
{
echo '</ul></div>';
$i=0;
$count -= 4;
} else $i++;
}İlk soru neden array a alıp aşağıda foreach e soktun direkt while ın içinde de bu işlemi yapabilirsin olabilir.
Çok basit kayıt sayılarını almam için yukarıda mysql_numrows çekmem gerekirdi buda ekstradan bir sorgu demektir. Hatta bazı kaynaklarda numrows u kullanmayın bile diyenler var. Bu yüzden kayıt sayısını array in count build-in fonksiyonunu kullanarak almayı tercih ettim. ve foreach le arrayimdeki kayıtları döndürdüm.
Active class ı bir kere yazılacağından kısaltılmış if scope u ilede key i sıfırsa yaz dedim çünkü arrayin keyi bir daha hiç sıfır gelmez.
Diğer if scope'larım da zaten 4 erli yazdırması için geçerli if lerdir.
Umarım açıklayıcı olmuştur.
Saygılar