ilginiz için teşekkür ederim input da dediğiniz gibi ads[0], ... olarak değerleri tanımladım bu kodu for yada for each döngüsüne almam gerekli mi mysql kayıt işlemiini halen başaramadım neden olabilir

 if(isset($_POST['ads'])){
        foreach ($_POST['ads'] as $ads) {
        $islem = $db->prepare("INSERT INTO misafir SET ads = ?");
$islem->bindParam(1, $ads);
$islem->execute();
    }


                                    }

zentamedia adlı üyeden alıntı: mesajı görüntüle
  1. prepare() yöntemini çağırdıktan sonra, verileri bağlamak için bindParam() yöntemini kullanmanız gerekiyor.
$islem = $db->prepare("INSERT INTO misafir SET ads = ?");
$islem->bindParam(1, $ads);
$islem->execute();
Burada $ads, her bir adı içeren bir değişken olarak düşünülmelidir. Yani foreach döngüsü içinde $ads değişkeni, her döngüde farklı bir adı temsil edecek şekilde değiştirilmelidir.
  1. $inputsay değişkenini her döngüde artırıyorsunuz, ancak bu değişkeni kodunuzun geri kalanında kullanmıyorsunuz. Bu değişkeni kullanmaya niyetiniz varsa, her bir input alanına name özniteliği ekleyerek kullanabilirsiniz.
<input type="text" class="form-control" name="ads[<?php echo $inputsay; ?>]" required="" placeholder="Adınız" value="<?php if(isset($_SESSION['kullanici']['login'])){ echo $kullanici['ads']; } ?>">
Bu şekilde, $_POST['ads'] dizisi, her bir ad için bir anahtar indeks içerecektir.
Son olarak, if(isset($_SESSION['kullanici']['login'])){...} kontrol yapısını her döngüde kullanıyorsunuz, ancak bu durum, oturum açılıp açılmadığını her seferinde kontrol etmenize neden olacaktır. Bu kontrolleri başka bir yerde yaparak, kodunuzu daha verimli hale getirebilirsiniz.