Şimdi Ara

Diziyi Veritabanına Atmak

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
12
Cevap
0
Favori
4.712
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar elimde ürünlerin tutulduğu bir dizi var. Bu diziyi direk veritabanına attığımda sadece ilk eklenen ürün gözüküyor veritabanında.
    Etraftakilere sorduğumda döngüyle yapabilirsin dediler fakat düşündüm düşündüm kuramadım kafamda.

    Nasıl atabilirim bu dizinin hepsini veritabanına?



  • Merhaba ,

    Öncelikle bir döngü ile dizi elemanlarını ayırıp o şekilde veri tabanına gönderebilirsiniz .


    http://stackoverflow.com/questions/6370754/grails-how-to-save-arraylist-in-db
  • text yaparsın tek column u mesela veriyide join ile toplarsın
    eğer c# ise;

    string[] urunler = new string[] { "a", "b", "c", "d", "e", "f" };

    string tekstring = string.Join("," , urunler); //sana a,b,c,d,e,f diye string vericek bu string i text olan column'a atarsın ordan geri okurken split edersin virgul ile
  • quote:

    Orijinalden alıntı: aLiM KaFKeF

    text yaparsın tek column u mesela veriyide join ile toplarsın
    eğer c# ise;

    string[] urunler = new string[] { "a", "b", "c", "d", "e", "f" };

    string tekstring = string.Join("," , urunler); //sana a,b,c,d,e,f diye string vericek bu string i text olan column'a atarsın ordan geri okurken split edersin virgul ile

    Php hocam
  • tablon asagidaki gibi olsun
    tablo : uyeler
    adi
    soyadi
    kullanici_adi
    sifre

    array'inde bu sekilde olursa
    $insert = array();
    $insert['adi'] = 'yns';
    $insert['soyadi'] = 'ksz';
    $insert['kullanici_adi'] = 'ynsksz';
    $insert['sifre'] = '123456';

    Bu sekilde bir sprintf ile
    insert edebilirsin

    $sorgu = sprintf("INSERT INTO %s (%s) VALUES('%s')", 'uyeler' , implode(',',array_keys($insert)) , implode("','",$insert));

    çıktısı INSERT INTO uyeler (adi,soyadi,kullanici_adi,sifre) VALUES('yns','ksz','ynsksz','123456')

    olacaktır. tabi her seferinde bunu yazmak yerine soyle bir fonksiyon daha şık olur;

    function createInsertQuery($table,$data,$filter){

    $query = sprintf("INSERT INTO %s (%s) VALUES('%s')", $table ,
    implode(',',array_keys($data)) ,
    implode("','",array_map($filter,$data)));
    return $query;
    }

    $query = createInsertQuery('uye',$insert,'mysql_real_escape_string'); // mysql_real_escape_string ile veriler filtreleniyor
    //INSERT INTO uye (adi,soyadi,kullanici_adi,sifre) VALUES('yns','ksz','ynsksz','123456')
    mysql_query($query); // olusturulan sorgu calistiriliyor.

    Bunun gibi birsey yapabilirsin ; madem oyle birde verilen array'i update eden bir fonk yazalım.
    function Update($data , $where)
    {
    $str = 'UPDATE ' . $data['table'] . ' SET ';
    unset($data['table']);
    foreach($data as $key => $val)
    {
    $str .= $key .'=\''. $val . '\',';
    }
    $str = rtrim($str,',') . ' ' . $where;
    return $str;
    }


    $up = array();
    $up['table'] = 'uye';
    $up['k_adi'] = 'emre';
    $query = update($up,'WHERE id = 5'); //UPDATE uye SET k_adi='emre' WHERE id = 5
    mysql_query($query);

    gibi çeşitli oyunlar oynayabilirsin. Umarım fonksiyonlar faydalı olur.
    Kolay Gelsin




  • quote:

    Orijinalden alıntı: ynsksz

    tablon asagidaki gibi olsun
    tablo : uyeler
    adi
    soyadi
    kullanici_adi
    sifre

    array'inde bu sekilde olursa
    $insert = array();
    $insert['adi'] = 'yns';
    $insert['soyadi'] = 'ksz';
    $insert['kullanici_adi'] = 'ynsksz';
    $insert['sifre'] = '123456';

    Bu sekilde bir sprintf ile
    insert edebilirsin

    $sorgu = sprintf("INSERT INTO %s (%s) VALUES('%s')", 'uyeler' , implode(',',array_keys($insert)) , implode("','",$insert));

    çıktısı INSERT INTO uyeler (adi,soyadi,kullanici_adi,sifre) VALUES('yns','ksz','ynsksz','123456')

    olacaktır. tabi her seferinde bunu yazmak yerine soyle bir fonksiyon daha şık olur;

    function createInsertQuery($table,$data,$filter){

    $query = sprintf("INSERT INTO %s (%s) VALUES('%s')", $table ,
    implode(',',array_keys($data)) ,
    implode("','",array_map($filter,$data)));
    return $query;
    }

    $query = createInsertQuery('uye',$insert,'mysql_real_escape_string'); // mysql_real_escape_string ile veriler filtreleniyor
    //INSERT INTO uye (adi,soyadi,kullanici_adi,sifre) VALUES('yns','ksz','ynsksz','123456')
    mysql_query($query); // olusturulan sorgu calistiriliyor.

    Bunun gibi birsey yapabilirsin ; madem oyle birde verilen array'i update eden bir fonk yazalım.
    function Update($data , $where)
    {
    $str = 'UPDATE ' . $data['table'] . ' SET ';
    unset($data['table']);
    foreach($data as $key => $val)
    {
    $str .= $key .'=\''. $val . '\',';
    }
    $str = rtrim($str,',') . ' ' . $where;
    return $str;
    }


    $up = array();
    $up['table'] = 'uye';
    $up['k_adi'] = 'emre';
    $query = update($up,'WHERE id = 5'); //UPDATE uye SET k_adi='emre' WHERE id = 5
    mysql_query($query);

    gibi çeşitli oyunlar oynayabilirsin. Umarım fonksiyonlar faydalı olur.
    Kolay Gelsin


    Vallahi hocam güzel yazmışsında şu şekilde açıklayayım. Siparişleri alıyorum bi dizi içinde tutuyorum atıyorum dizinin adı $siparisler olsun. Daha sonra bi form sayfasına yönlendirip adı soyadı adresi telefonu bi formda alıp siparişlerle beraber veri tabanına atıyorum.

    $ad = $_POST["adi"];
    $soyad = $_POST["soyadi"];
    $tell = $_POST["tel"];
    $adress = $_POST["adres"];


    $baglan=mysql_connect("localhost","root","");
    $sec = mysql_select_db("siparis",$baglan);

    mysql_query("INSERT INTO `siparis`.`tablo` (`adi`, `soyadi`, `tel`, `adres`, `urun`) VALUES ('$ad', '$soyad', '$tell', '$adress', '$siparisler')");




  • dizinin icindeki tam veri nasil siparislerin id ya da urun kodlarini tutuyorsan

    mysql_query("INSERT INTO `siparis`.`tablo` (`adi`, `soyadi`, `tel`, `adres`, `urun`) VALUES ('$ad', '$soyad', '$tell', '$adress', '".implode(',',$siparisler)."')");

    yapip veriyi virgulle ya da kendi belirleyecegin bir seperatorle birlestirip o sekilde yazabilirsin.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • quote:

    Orijinalden alıntı: ynsksz

    dizinin icindeki tam veri nasil siparislerin id ya da urun kodlarini tutuyorsan

    mysql_query("INSERT INTO `siparis`.`tablo` (`adi`, `soyadi`, `tel`, `adres`, `urun`) VALUES ('$ad', '$soyad', '$tell', '$adress', '".implode(',',$siparisler)."')");

    yapip veriyi virgulle ya da kendi belirleyecegin bir seperatorle birlestirip o sekilde yazabilirsin.

    en sağlam yöntemdir. @ ile parçala böl yönet :)
  • Yöntem bana niye tuhaf geldi
    dizi var
    $dizi = ["adi","soyadi","tel","adres","urun"];
    diyelim şimdi bu dizinin hangi elemanının ne olduğunu biliyoruz.
    yani
    echo $dizi[0];
    bize çıktı olarak adi yazdırıcak peki dizide kaç eleman var ne nereye eklenicek hepsi belli..

    Buradan yola çıkarak.

    mysql_query("INSERT INTO `siparis`.`tablo` (`adi`, `soyadi`, `tel`, `adres`, `urun`) VALUES ('$ad', '$soyad', '$tell', '$adress', '$siparisler')");

    VALUES ("$dizi[0]","$dizi[1]","$dizi[2]","$dizi[3]","$dizi[4]") şeklinde yollasak olmazmı bu işlem?

    ayrıca niye dizide tutuyorsun işlemlerin tümünü db üzerinden halletsene normal bir form oluştur o formu yolla ve db ye ekle işini niye zorlaştırıyorsun onu da anlamış değilim. Eğer sorun verileri okuyup db ye ekleyen php de tek tek mi yazıcam ise bir yol var :)

    quote:



    <form action="oku.php" method="post">
    İsim: <br/>
    <input type="text" name="isim" id="isim" value="" /><br />
    E-mail:<br />
    <input type="text" name="email" id="email" value="" /><br />
    <input type="text" name="a" id="a" value="" /><br />
    <input type="text" name="b" id="b" value="" /><br />
    <input type="text" name="c" id="c" value="" /><br />
    <input type="text" name="d" id="d" value="" /><br />
    <input type="text" name="e" id="e" value="" /><br />

    <input type="submit" name="gonder" value="Gönder" />
    </form>



    oku.php nin içeriği.

    quote:



    <?php

    foreach($_POST as $key => $value)
    $$key = $value;
    echo "İsim: $isim<br />";
    echo "E-mail: $email<br /><br />";
    echo "a: $a<br /><br />";
    echo "b: $b<br /><br />";
    echo "c: $c<br /><br />";
    echo "d: $d<br /><br />";
    echo "e: $e<br /><br />";

    ?>




    < Bu mesaj bu kişi tarafından değiştirildi ecarpar -- 1 Haziran 2012; 15:39:38 >




  • quote:

    Orijinalden alıntı: ecarpar

    Yöntem bana niye tuhaf geldi
    dizi var
    $dizi = ["adi","soyadi","tel","adres","urun"];
    diyelim şimdi bu dizinin hangi elemanının ne olduğunu biliyoruz.
    yani
    echo $dizi[0];
    bize çıktı olarak adi yazdırıcak peki dizide kaç eleman var ne nereye eklenicek hepsi belli..

    Buradan yola çıkarak.

    mysql_query("INSERT INTO `siparis`.`tablo` (`adi`, `soyadi`, `tel`, `adres`, `urun`) VALUES ('$ad', '$soyad', '$tell', '$adress', '$siparisler')");

    VALUES ("$dizi[0]","$dizi[1]","$dizi[2]","$dizi[3]","$dizi[4]") şeklinde yollasak olmazmı bu işlem?

    ayrıca niye dizide tutuyorsun işlemlerin tümünü db üzerinden halletsene normal bir form oluştur o formu yolla ve db ye ekle işini niye zorlaştırıyorsun onu da anlamış değilim. Eğer sorun verileri okuyup db ye ekleyen php de tek tek mi yazıcam ise bir yol var :)

    quote:



    <form action="oku.php" method="post">
    İsim: <br/>
    <input type="text" name="isim" id="isim" value="" /><br />
    E-mail:<br />
    <input type="text" name="email" id="email" value="" /><br />
    <input type="text" name="a" id="a" value="" /><br />
    <input type="text" name="b" id="b" value="" /><br />
    <input type="text" name="c" id="c" value="" /><br />
    <input type="text" name="d" id="d" value="" /><br />
    <input type="text" name="e" id="e" value="" /><br />

    <input type="submit" name="gonder" value="Gönder" />
    </form>



    oku.php nin içeriği.

    quote:



    <?php

    foreach($_POST as $key => $value)
    $$key = $value;
    echo "İsim: $isim<br />";
    echo "E-mail: $email<br /><br />";
    echo "a: $a<br /><br />";
    echo "b: $b<br /><br />";
    echo "c: $c<br /><br />";
    echo "d: $d<br /><br />";
    echo "e: $e<br /><br />";

    ?>




    Teşekkürler bende senin bu çözüm önerinle kendi başka sorunumu çözdüm :D




  • quote:

    Orijinalden alıntı: ecarpar

    Yöntem bana niye tuhaf geldi
    dizi var
    $dizi = ["adi","soyadi","tel","adres","urun"];
    diyelim şimdi bu dizinin hangi elemanının ne olduğunu biliyoruz.
    yani
    echo $dizi[0];
    bize çıktı olarak adi yazdırıcak peki dizide kaç eleman var ne nereye eklenicek hepsi belli..

    Buradan yola çıkarak.

    mysql_query("INSERT INTO `siparis`.`tablo` (`adi`, `soyadi`, `tel`, `adres`, `urun`) VALUES ('$ad', '$soyad', '$tell', '$adress', '$siparisler')");

    VALUES ("$dizi[0]","$dizi[1]","$dizi[2]","$dizi[3]","$dizi[4]") şeklinde yollasak olmazmı bu işlem?

    ayrıca niye dizide tutuyorsun işlemlerin tümünü db üzerinden halletsene normal bir form oluştur o formu yolla ve db ye ekle işini niye zorlaştırıyorsun onu da anlamış değilim. Eğer sorun verileri okuyup db ye ekleyen php de tek tek mi yazıcam ise bir yol var :)

    quote:



    <form action="oku.php" method="post">
    İsim: <br/>
    <input type="text" name="isim" id="isim" value="" /><br />
    E-mail:<br />
    <input type="text" name="email" id="email" value="" /><br />
    <input type="text" name="a" id="a" value="" /><br />
    <input type="text" name="b" id="b" value="" /><br />
    <input type="text" name="c" id="c" value="" /><br />
    <input type="text" name="d" id="d" value="" /><br />
    <input type="text" name="e" id="e" value="" /><br />

    <input type="submit" name="gonder" value="Gönder" />
    </form>



    oku.php nin içeriği.

    quote:



    <?php

    foreach($_POST as $key => $value)
    $$key = $value;
    echo "İsim: $isim<br />";
    echo "E-mail: $email<br /><br />";
    echo "a: $a<br /><br />";
    echo "b: $b<br /><br />";
    echo "c: $c<br /><br />";
    echo "d: $d<br /><br />";
    echo "e: $e<br /><br />";

    ?>





    Sepette birden fazla urun var olay orda zaten




  • tamamda sen nasıl yapıyorsun ? çok bilinmeyenli çıkar ortaya başın ağrımasın sonra, sepete ürünü kullanıcı atar, db ye kaydedersin
    ÖRN;

    Tablo : Sepet

    Kolon : KullanıcıID
    Kolon : ÜrünStokKodu
    Kolon : Ürünadı
    Kolon : ürün Fiyatı

    Gibi tuttuğunu düşünürsek,
    kullanıcı ıd sini giriş yapmış üyeden yakalarsın, aldığı ürünleri db ye yukarıdaki gibi kaydedersin id burada auto olmaz sen kullanıcının id sini yollarsın sonrada sepete gelince bakarsın kullanıcının id si nedir? tamam bu id li sütunları yazdır şimdi dersin, sepetin oluşmuş olur.
    Yanlışsa düzeltin :).

    Ayrıca yukardaki yüöntem ile browser şişene kadar veri post edebilirsin :)300 -500 ü geçer tahminimce buda.



    < Bu mesaj bu kişi tarafından değiştirildi ecarpar -- 11 Haziran 2012; 14:28:35 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.