Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

çoklu veri girme işlemi ile ilgili bir soru

Daha öncede açtım böyle bir soru yanlız olmadı tekrar sormak zorundayım, internetde nereye baksam yorumlarda hep sonuçsuz olarak bir kod veriliyor. kimse işini düzgün halledememiş, şimdi bunu gerçekden bilen birisi varsa rica etsem düzgünce kodlarını örnek vere bilirmi ?

Mantık şöyle olucak

inputlar alt alta listeleniyor ben 3 yane koydum ama daha fazlada olabilir.

<input type="text" name="ad[]"><input type="text" name="soyad[]"> veya yan yana başka inputlar olsun
<input type="text" name="ad[]"><input type="text" name="soyad[]"> veya yan yana başka inputlar olsun
<input type="text" name="ad[]"><input type="text" name="soyad[]"> veya yan yana başka inputlar olsun


girilen her değeri veritabanına şu şekilde kayıt etmek istiyorum

ID | AD    | SOYAD
1  > Büşra > Vural
2  > Kübra > xxxxx
3  > Mert  > xxxxx
+
+
+



Bu olmadı
for($i=0;$i<count($ad);$i++){

$kayit = mysql_query("INSERT INTO kullanici (ad,soyad) values ('$ad[]','$soyad[]')");

}


Buda olmadı
foreach($ad as $ad_) {

$ad      = $_POST["ad"];
$soyad   = $_POST["soyad"];

$kayit = mysql_query("INSERT INTO kullanici (ad_,soyad) values ('$ad','$soyad')");

}
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • xuma adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    171 cevap - 1 soru
    Verilen cevaplar büyük ihtimalle doğru olacaktır bu yüzden hataları söyleyim ,ilk örnekte

    $ad=$_POST['ad'];
    $soyad=$_POST['ad'];
    for içinde saydırdığun veriyi $ad[$i] olarak göstermen lazım.
    for($i=0;$i<count($ad);$i++){
    
    $kayit = mysql_query("INSERT INTO kullanici (ad,soyad) values ('$ad[".$i."]','$soyad[".$i."]')");
    
    }
    


    Aşağıdakinde post edilen veri dışarda alınmalı ancak soyadı yazdıramaz yine yukardaki kodu kullanman mantıklı
    $ad      = $_POST["ad"];
    $soyad   = $_POST["soyad"];
    foreach($ad as $ad_) {
    $kayit = mysql_query("INSERT INTO kullanici (ad,soyad) values ('$ad_','$soyad')");
    
    }
    
    • pl_phe adlı üyenin fotoğrafı pl_phe
      Teşekkürederim :)

      birde beni kafamı karıştıran yeri şurasıydı,


      for($i=0;$i<count($ad);$i++){


      count terinde neden sadece ad değişkenini çagırıyoruz, soyadda var :S ama ikisinide ekleyebiliyor bunun mantığı tam olarak nasıl peki :)
      11 yıl önce yazılmış
    • xuma adlı üyenin fotoğrafı xuma
      For döngüsüne girmeden öncede zaten $ad ve $soyad formdan dizi olarak gelir.Bu yüzden echo $ad[1]; yazsanda inputu görebilirsin.Aynı sayıda input ad ve input soyad olduğundan problem çıkmaz.
      11 yıl önce yazılmış

Cevaplar

  • 1
    camcicarsi adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    4 cevap - 10 soru
    Posttan gelen veriler bir diziye aktarılmakta olduğu için
    $say = count($_POST[ad])
    for($i=0; $i<=$say; $i++){
    $ad = $_POST[ad][$i];
    $soyad ? $_POST[soyad][$i];
    $sql = mysql_query("INSERT INTO kullanici (ad, soyad) values ('$ad', '$soyad')");
    
    
    }
    

    Şeklinde olması lazım..
  • zyber adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    57 cevap - 25 soru
    Aşağıdaki gibi dene.


    <input type="checkbox" name="ad[]" value="" /> 
    


    $arrAd = $_POST["ad"];
    if (!$arrAd) $arrAd = array();
    foreach($arrAd as $ad) {
    $kayit = mysql_query("INSERT INTO kullanici (ad) values ('$ad')");
    }
    
    • paradigma adlı üyenin fotoğrafı paradigma
      @pl_phe farketmez ki,count ile istrseniz soyadı saydırın,sonuçta soyad ve ad ikisininde sayısı eşit olacağından farketmiyor,countla saydırmanın mantığı posttan kaç tane ad ve soyad geldiğini bulmak,bir tanesini dahi saydırsak ikisinin sayısını da buluruz,çünkü eşit sayıda gelicek bilmem anlatabildim mi?
      Ha soyadı cunt ile saydırmışısz ha adı,önemli olan posttan kaç tane geldiğininin sayısını almak
      11 yıl önce yazılmış