Met adlı üyeden alıntı: mesajı görüntüle
<?php
$sql = "SELECT * FROM kategoriler LIMIT 4";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    $i = 0;
    while($row = mysqli_fetch_assoc($result)) {
       if($i%4 == 0){
          echo '<div class="container-fluid bg-3 text-center">    
                    <div class="row">';
       }
?>
    <div class="col-sm-3">
      <?php echo '<a href="/urunler.php?id='.$row['id'].'">'.$row['isim'].'</a>';?>
      <img src="<?php echo $row['resim'];?>" class="img-responsive" style="width:100%" alt="Image">
    </div>
<?php     
            if($i%4 == 3){ //4-1
                echo '</div>
                     </div>';
            } 
          $i++;
          }
}
?>
hocam çözüm için teşekkür ederim. aklımı karıştıran bir nokta var.

Php'de hiç bölmeden tüm sonuçları alsam, bootstrap grid özelliğini kullanıp misal

col-xs-12 col-sm-6 col-md-3

şeklinde kullansam yine alta atıyor. kategori resimleri de her halükarda responsive olacağı için php ile böldüğümüz şekilde görünmez mi yine?