Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Foreach kayıt problemi

Konu, 'PHP' kısmında valid20 tarafından paylaşıldı.

  1. valid20

    valid20 Üye

    Kayıt:
    1 Ocak 2014
    Mesajlar:
    73
    Beğenilen Mesajlar:
    1
    Merhabalar,
    Arkadaşlar foreach ile mysql db toplu kayıt yapıyorum.
    Problem şu biryere kadar gelip kayıt yapıyor sonrasında kayıt yapmıyor. Aynı kodlarla başka bir bilgisayarda kayıt yapıyor sorun kodlarda değil hafıza problemi gibi görünüyor nasıl aşarım?
    Şimdiden teşekkür ederim.
     
  2. Furkan Onka Uğur

    Furkan Onka Uğur Moderatör Yetkili Kişi

    Kayıt:
    12 Eylül 2008
    Mesajlar:
    3,683
    Beğenilen Mesajlar:
    42
    Şehir:
    Ankara
    BULK INSERT'i araştırın.
     
  3. valid20

    valid20 Üye

    Kayıt:
    1 Ocak 2014
    Mesajlar:
    73
    Beğenilen Mesajlar:
    1
    Maalesef oradan da bir şey çıkmadı...
    kodlarım bu.
    $guncelle =mysql_query("UPDATE muhasebe set $yilay='$gelenodeme[$id]',bankasiid='$bankasiid[$id]',notlar='$notlar[$id]' WHERE id='$id'");

    dediğim gibi bir bilgisayarda çalışıyor diğerinde mesela 1200 kayıt güncellemesi gerekirken 800 e kadar güncelleyip diğerlerini güncellemiyor....
     
  4. deathisonitsway

    deathisonitsway x-coder

    Kayıt:
    7 Kasım 2007
    Mesajlar:
    6,140
    Beğenilen Mesajlar:
    6
    Meslek:
    php-coder
    Şehir:
    abroad
    kayıt yapmak baska bir şey kayıt güncellemek başka bir şey.
    bu verdiğiniz kod

    PHP:

    WHERE id
    ='$id'

    bundan sebep.tek bir kaydı günceller.id alanı mantıksal olarak unique ve auto_increment alandır.sizinki neyi ifade ediyor bilemem (acıklamadığınız icin)...2000 kaydın guncellenmesi gerektiginden bahsediyorsunuz.muhtemelen bunun icin bir döngünüz var.benim tavsiyem size log yazdırın.
    LOGlarla calısmadıgınız sürece boşa kürek çeker hiç bir problemi adam akıllı çözemezsiniz.
     
  5. valid20

    valid20 Üye

    Kayıt:
    1 Ocak 2014
    Mesajlar:
    73
    Beğenilen Mesajlar:
    1
    Öncesinde
    foreach ($_POST['id'] as $id){

    $yilay =$_POST['yilay'];
    $gelenodeme =$_POST['gelenodeme'];
    $bankasiid =$_POST['bankasiid'];
    $notlar =$_POST['notlar'];

    $guncelle =mysql_query("UPDATE muhasebe set $yilay='$gelenodeme[$id]',bankasiid='$bankasiid[$id]',notlar='$notlar[$id]' WHERE id='$id'");
    }

    dediğim gibi bu kodlarla laptopta hiç bir problem olmadan çalışıyor. Problem masaüstü bilgisayarda onda kayıt bir yere kadar yapıyor sonrası yok....
     
  6. deathisonitsway

    deathisonitsway x-coder

    Kayıt:
    7 Kasım 2007
    Mesajlar:
    6,140
    Beğenilen Mesajlar:
    6
    Meslek:
    php-coder
    Şehir:
    abroad
    php laptop icin yada desktop icin ayrı ayrı çalıştığı diye bir olayı yok.php php yi yorumlayabilen bir sunucu icinde calısan bir dildir.o yüzden laptopta calısmıyor ama desktopta calısıyor diye bir cümle kurmayın...bir onceki postumda dedigim gibi.iyi bir programcı olmak istiyorsanız exceptionları cok iyi biliyor olmanız gerekir.

    kodu koydum Allaha emanet çalışır mantığını değil o kodun çalışmadığı şartları bir yere kaydetmeniz gerekir.
    buna binaen;

    Kodunuzda syntax olarak hata gorunmuyor ama sadece yazımsal olarak hata gorunmuyor.belliki kod exception fırlatıyor ama sizin haberiniz yok.sorunu debug yontemiyle cozmeniz gerek.bu kodun hata üretmesini sağlamalısınız.1200 kaydı guncelleyip 800 kaydı güncellemiyorsa da muhtemelen bir database verilerinizde sıkıntı var.

    kodunuzun sonuna OR DIE mysql_error(); ekleyerek mysqlin hata vermesini saglayabilirsiniz.
     
  7. valid20

    valid20 Üye

    Kayıt:
    1 Ocak 2014
    Mesajlar:
    73
    Beğenilen Mesajlar:
    1
    Çok teşekkür ederim. Esas problem php.ini dosyasındaymış.
    max_input_vars = 1000 değerini yükseltince problem hal oldu.
    Herkese teşekkür ederim.
     
    izmiralem bunu beğendi.