• 22-05-2020, 02:39:47
    #1
    aslında başka bir konu altında sorumu farklı bir şekilde sormuştum ama bu yeni konuda en azından arayan herkesin işine yarayacak bir temel bilgi sormak istiyorum

    foreach ile veriyi db den listeledikten sonra o veriyi dizi şeklinde yada başka bir şekilde birden çok veriyi post edip
    kaydet.php içinde postu nasıl karşılar alırız ?

    veya farklı bir yöntem ile db den veriyi listeleyip bu çoklu veriyi nasıl alıpda db nin başka tablosuna kaydederiz.? Belki foreach de kullanmadan yapılabilirmi?
  • 22-05-2020, 02:42:13
    #2
    $query = $db->query("SELECT * FROM uyeler", PDO::FETCH_ASSOC);if ( $query->rowCount() ){     foreach( $query as $row ){    //ÇEKİLECEK VERİYİ BURADAN AYARLAYIN
    
            //INSERT IŞLEMI BURADA
    
      }}
  • 22-05-2020, 03:05:35
    #3
    instads adlı üyeden alıntı: mesajı görüntüle
    $query = $db->query("SELECT * FROM uyeler", PDO::FETCH_ASSOC);if ( $query->rowCount() ){     foreach( $query as $row ){    //ÇEKİLECEK VERİYİ BURADAN AYARLAYIN
    
            //INSERT IŞLEMI BURADA
    
      }}
    //ÇEKİLECEK VERİYİ BURADAN AYARLAYIN dediğiniz yerde sıkıntı yok veriyi çekebiliyorum ama

    çekilen veriyi baska sayfaya post edip kaydet.php de onu alıp kaydedemiyorum veya görüntülemiyorum
    veri geliyor ama tamamı gelmiyor

    bu arada listelediğim yerde düşününki 10 adet soru var altlarında cevap yazılmış bunları kaydet.php ye soru_id lerini ve cevap inputunu kaydet.php ye gönderemiyorum.
    tuhaf bir durum çok arastırdım boyle birşey kimse kullanmıyormu anlamadım benzer birşey bulamadım yada bulduysam da bende olmadı

    yardımlarınız için teşekkürler
  • 22-05-2020, 07:21:34
    #4
    Şuan mobilim ama şunu arat, bulamazsan pcye geçince yardımcı olayım

    Php pdo multiple post foreach
  • 22-05-2020, 14:25:31
    #5
    Anladığım kadarıyla bir php dosyasında post yakalayıp (veya herhangi bir veri listeleyip) bu postları (verileri) da başka bir php dosyasına post etmek istiyorsunuz. Böyle düşünerek örnek vereyim;
    Öncelikle gelen bu çoklu verilerinizi array ise json formatına çevirin json_encode() fonksiyonu ile. daha sonra veriyi kaydet.php ye göndermek için bir curl işlemi başlatalım. Aşağıda basit bir örnek ile anlatmaya çalışayım, umarım istediğiniz buna benzer bir şeydir.
    index.php olsun
    <?php
    function yolla($data_string) { // post işlemini yapan fonksiyonumuz
    $ch = curl_init($_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).DIRECTORY_SEPARATOR.'kaydet.php');
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data_string)));
    return curl_exec($ch);
    }
    $d = [
    [
    'ad' => 'Abdullah',
    'soyad' => 'Kaya',
    'telefon' => 12345675678,
    'e_posta' => 'abdullahkaya544@gmail.com'
    ],
    [
    'ad' => 'Ali',
    'soyad' => 'Veli',
    'telefon' => 9023843257,
    'e_posta' => 'test@test.com'
    ],
    [
    'ad' => 'deneme',
    'soyad' => 'soyadı',
    'telefon' => 9181161515,
    'e_posta' => 'deneme@deneme.com'
    ]
    ]; // Bu db den gelen array halinde veri olsun ister foreach e sokar istediğiniz kısmı kesip yollarsınız ister direkt yollarsınız. Düzenlemesi size ait
    
    $veri = json_encode($d, JSON_UNESCAPED_UNICODE); // json yapalım
    yolla($veri); // kaydet.php ye post edelim
    kaydet.php olsun
    <?php
    $posts = file_get_contents('php://input'); // gelen postu yakalayalım
    $data = json_decode($posts, 1); // decode edelim ve array yapalım
    
    try {
    $con = new PDO("mysql:host=localhost; dbname=deneme","root","");
    $con-> exec("SET NAMES utf8mb4; SET CHARSET utf8mb4");
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
    echo 'Bağlanamadı'. $e->getMessage();
    }
    
    foreach ($data as $key => $value) { // gelen veriyi döngüye sokup db ye kaydedelim veya artık ne yapmak istiyorsanız
    $yaz = $con->prepare("INSERT INTO kullanici (ad, soyad, telefon, e_posta) VALUES (?,?,?,?)");
    $yaz->execute([
    $value['ad'],
    $value['soyad'],
    $value['telefon'],
    $value['e_posta']
    ]);
    }
  • 22-05-2020, 23:49:54
    #6
    Teşekkürler öncelikle vaktinizi ayırdığınız için teşekkür ederim PC bin başına geçince deniyecem tekrar teşekkürler
  • 23-05-2020, 09:58:34
    #7
    Listeleme yaparken bir dizi oluşturun o diziyi de sessionda tutun istediğin sayfada da ne yapmak istiyorsan yaparsın.
  • 24-05-2020, 23:50:04
    #8
    salimsevindik adlı üyeden alıntı: mesajı görüntüle
    Listeleme yaparken bir dizi oluşturun o diziyi de sessionda tutun istediğin sayfada da ne yapmak istiyorsan yaparsın.
    bu mantıklı gibi benimde yapmak istediğim buna benzer ama kod tarafını yapamıyorum
    query ile db den cektiğimi foreach ile listeliyorum listediğim veriyi ve aynı zamanda verinin içindeki değişikliği
    bir dizi değişkenine yükleyipform ile bir sonraki asamadaki kaydet sayfasına atıp ordada hepsini yakalamaya çalışıyorum işte tam orda
    yine foreach ilemi yapmalıyım bilmiyorum biraz yol alabildim lakin 10 tane soru listeleyip 10 nuda cevaplasamda sadece 10. sorunun bilgi cevaplarını kaydet.php ye form
    ile gönderip okuyabiliyorum.... artık pes etmek üzereyim bakalım biraz daha deniyeyim
    ayrıca sanki ne yapmak istediğimi biliyorum ama koda dökemiyorum gibiyim
  • 25-05-2020, 01:28:43
    #9
    Merhaba,
    Ben db'den çektiğiniz datayı kaydet.php'ye neden post ettiğinizi anlayamadım. Çektiğiniz yerde manipülasyonu yapıp yine aynı yerde neden veritabanına kaydetmiyorsunuz?

    Post işlemi tarayıcıdan alacağınız bir dataya sunucuda erişmek için ya da bir siteden başka bir siteye erişmek için kullanılabilir. Siz kendi yazılımınız içinde neden post ihtiyacı duydunuz? Yanlış anladıysam, başka bir sunucuya dataları gönderecekseniz sorumu dikkate almayın. Doğru anladıysam oop 'a ya da en azından fonksiyonlara bakmanızı öneririm. Veriye eriştiğiniz yerde müdahale edip tekrar db'ye yazabilirsiniz. Çözemediyseniz ne aşamadasınız yazarsanız yardımcı olmaya çalışalım.

    İyi bayramlar.