• 23-06-2013, 12:35:13
    #1
    Merhabalar

    Google da aradım ama bulamadım banko vardır ama yazdığım etiketlerle ilgili birşey çıkmadı bende r10'na soram dedim.

    Bir tablom var. Ben oradan bir veriyi siliyorum ama aynı anda o verilerin yedek diye bir tabloya kaydedilmesini istiyorum.

    Cevap verecek arkadaşlar için basit olsun diye tablo id-ad-soyad tablosu kullanıp beni bilgilendirirlerse sevinirim.
  • 23-06-2013, 12:45:00
    #2
    fasb adlı üyeden alıntı: mesajı görüntüle
    Merhabalar

    Google da aradım ama bulamadım banko vardır ama yazdığım etiketlerle ilgili birşey çıkmadı bende r10'na soram dedim.

    Bir tablom var. Ben oradan bir veriyi siliyorum ama aynı anda o verilerin yedek diye bir tabloya kaydedilmesini istiyorum.

    Cevap verecek arkadaşlar için basit olsun diye tablo id-ad-soyad tablosu kullanıp beni bilgilendirirlerse sevinirim.
    Buyrun:

    <?php
    $idx=intval($_POST["id"]);
    $adx=trim(strip_tags(mysql_real_escape_string($_POST["ad"])));
    $soyad=trim(strip_tags(mysql_real_escape_string($_POST["soyad"])));
    $eklehadi=mysql_query("INSERT INTO yedek SET ad='$adx',soyad='$soyad'");
    $silhadi=mysql_query("DELETE FROM tablo WHERE id='$idx'");
    ?>
  • 23-06-2013, 13:08:37
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Onun yerine tabloda yedek diye bir sütün açın. Sil dediğinizde yedek satırındaki katarı 0 iken 1 olarak atasın. Sizde listelerden where yedek='0' yaparsanız verileri silinmiş olarak gösterecektir ve bu katalar gözüklemeyecektir. Hem karmaşıklıkdan kurtulmuş olacaksınız hemde işlem fazlalığından...

    İyi çalışmalar inş. anlatabilmişimdir.
  • 23-06-2013, 13:41:49
    #4
    kingofseo adlı üyeden alıntı: mesajı görüntüle
    Buyrun:

    <?php
    $idx=intval($_POST["id"]);
    $adx=trim(strip_tags(mysql_real_escape_string($_POST["ad"])));
    $soyad=trim(strip_tags(mysql_real_escape_string($_POST["soyad"])));
    $eklehadi=mysql_query("INSERT INTO yedek SET ad='$adx',soyad='$soyad'");
    $silhadi=mysql_query("DELETE FROM tablo WHERE id='$idx'");
    ?>
    Şimdi hocamız bize trim(strip_tag) fonksiyonunu göstermedi. onun için onu kullanmam zor gibi. ama teşekkürler yinede. hiç değilse daha bilgili birisi aradığı zaman kolayca ulaşabilir bilgiye.

    functions adlı üyeden alıntı: mesajı görüntüle
    Onun yerine tabloda yedek diye bir sütün açın. Sil dediğinizde yedek satırındaki katarı 0 iken 1 olarak atasın. Sizde listelerden where yedek='0' yaparsanız verileri silinmiş olarak gösterecektir ve bu katalar gözüklemeyecektir. Hem karmaşıklıkdan kurtulmuş olacaksınız hemde işlem fazlalığından...

    İyi çalışmalar inş. anlatabilmişimdir.
    Aynı şekilde katalar nedir, ne işe yarar onu bilmiyorum maalesef. Yine de teşekkür ederim.

    Galiba beni hatam kendi seviyemi belirtmemem oldu. Seviyesi ++ olan insanlar kolayca anlar fakat benim şuanki seviyem yarım artı gibi birşey. Listeleme oradan silme,düzenleme,substr gibi basit terimlerdeyiz daha. Sql serverde buna benzer bir örneği yaptım fakat bunu php de yapamadım. Özetle biraz daha amatörlerin anlacağı kısımda yazarsanız sevinirim. Umarım yormuyoruzdur sizi.
  • 23-06-2013, 17:37:29
    #5
    fasb adlı üyeden alıntı: mesajı görüntüle
    Şimdi hocamız bize trim(strip_tag) fonksiyonunu göstermedi. onun için onu kullanmam zor gibi. ama teşekkürler yinede. hiç değilse daha bilgili birisi aradığı zaman kolayca ulaşabilir bilgiye.



    Aynı şekilde katalar nedir, ne işe yarar onu bilmiyorum maalesef. Yine de teşekkür ederim.

    Galiba beni hatam kendi seviyemi belirtmemem oldu. Seviyesi ++ olan insanlar kolayca anlar fakat benim şuanki seviyem yarım artı gibi birşey. Listeleme oradan silme,düzenleme,substr gibi basit terimlerdeyiz daha. Sql serverde buna benzer bir örneği yaptım fakat bunu php de yapamadım. Özetle biraz daha amatörlerin anlacağı kısımda yazarsanız sevinirim. Umarım yormuyoruzdur sizi.
    Arkadaşın bahsettiği sistem şöyle işlemekte üstad.

    Öncelikle "katar" diye bahsettiği tabloda ki sütundur.

    Öncelikle Phpmyadmine gir. Mevcut içerik tablonda, "yedek" adında bir sütun oluştur ve bu sütunun veri tipi "int" olsun. Sütunu oluşturduktan sonra tabloya bakarsan "yedek" sütununda bütün satırlarda 0 göreceksin. Oluşturduğumuz bu sistemde tablo satırlarında yer alan "0" içeriğin yayında olduğu, yedeğinin alınmadığı anlamına gelmektedir. Şimdi verinin nasıl yayından alınıp, yedekleneceği işlemine gelelim.
    Silme işlemi yaptığın php kodunu şu şekilde değiştir.
    <?php
    $id = $_GET["id"];
    $yedegeCek = mysql_query("update tablodadi SET yedek=1 where id='$id'");
     ?>
    Bu şekilde içeriği yedeğe almış olduk.

    Şimdi gelelim içeriğin sitede gösterilirken nasıl gösterileceğine.

    İçeriğin listelendiği sayfa da ki sorgunu şu şekilde değiştirmen gerekecek.
    <?php 
     $icerikGoster = mysql_query("select * from tabloadi where yedek=0");
    ?>
    Bu şekilde yaptığında yayında olan içeriği göstermiş olursun. Eğer silinen yani yedeğe alınan verileri listelemek istiyorsan ;
    <?php 
     $yedekGoster= mysql_query("select * from tabloadi where yedek=1");
    ?>
    Sorguyu bu şekilde yapman gerekiyor. Yani "yedek = 1 " şeklinde.

    Tekrarlıyorum. Oluşturulan bu sistemde;
    0 = Yayında olan içerik
    1 = Yayından alınan yedeğe çekilen içerik

    Kolay gelsin
  • 23-06-2013, 17:55:57
    #6
    NepenTheS adlı üyeden alıntı: mesajı görüntüle
    Arkadaşın bahsettiği sistem şöyle işlemekte üstad.

    Öncelikle "katar" diye bahsettiği tabloda ki sütundur.

    Öncelikle Phpmyadmine gir. Mevcut içerik tablonda, "yedek" adında bir sütun oluştur ve bu sütunun veri tipi "int" olsun. Sütunu oluşturduktan sonra tabloya bakarsan "yedek" sütununda bütün satırlarda 0 göreceksin. Oluşturduğumuz bu sistemde tablo satırlarında yer alan "0" içeriğin yayında olduğu, yedeğinin alınmadığı anlamına gelmektedir. Şimdi verinin nasıl yayından alınıp, yedekleneceği işlemine gelelim.
    Silme işlemi yaptığın php kodunu şu şekilde değiştir.
    <?php
    $id = $_GET["id"];
    $yedegeCek = mysql_query("update tablodadi SET yedek=1 where id='$id'");
     ?>
    Bu şekilde içeriği yedeğe almış olduk.

    Şimdi gelelim içeriğin sitede gösterilirken nasıl gösterileceğine.

    İçeriğin listelendiği sayfa da ki sorgunu şu şekilde değiştirmen gerekecek.
    <?php 
     $icerikGoster = mysql_query("select * from tabloadi where yedek=0");
    ?>
    Bu şekilde yaptığında yayında olan içeriği göstermiş olursun. Eğer silinen yani yedeğe alınan verileri listelemek istiyorsan ;
    <?php 
     $yedekGoster= mysql_query("select * from tabloadi where yedek=1");
    ?>
    Sorguyu bu şekilde yapman gerekiyor. Yani "yedek = 1 " şeklinde.

    Tekrarlıyorum. Oluşturulan bu sistemde;
    0 = Yayında olan içerik
    1 = Yayından alınan yedeğe çekilen içerik

    Kolay gelsin
    ilk önce teşekkürler. ben bu mantığı anladım. hiçbir yere insert etmiyoruz böylelikle veritabanını boşa şişirmemiş oluyoruz. gayet güzel.

    edit1 : şunu şimdi denerken farkettim. bu güzel mantık çoğu yerde kullanırım fakat şimdi ben hem yayında olsun hem yedeği olsun istersem nasıl olucak ? yedek kısmını 1 yaptık ama o yayından gitti nasıl olucak ? tam olarak istediğimizi alamayız bundan.

    Peki ama hoca derse ayrı bir tabloya insert et derse ne yapabiliriz ? Son olarak bunu da alabilirsem bu geceye kadar yarın ki sınavda hiç değilse yardımı dokunur bb-aa gelirse de bir çay ısmarlarım
  • 23-06-2013, 20:34:33
    #7
    fasb adlı üyeden alıntı: mesajı görüntüle
    ilk önce teşekkürler. ben bu mantığı anladım. hiçbir yere insert etmiyoruz böylelikle veritabanını boşa şişirmemiş oluyoruz. gayet güzel.

    edit1 : şunu şimdi denerken farkettim. bu güzel mantık çoğu yerde kullanırım fakat şimdi ben hem yayında olsun hem yedeği olsun istersem nasıl olucak ? yedek kısmını 1 yaptık ama o yayından gitti nasıl olucak ? tam olarak istediğimizi alamayız bundan.

    Peki ama hoca derse ayrı bir tabloya insert et derse ne yapabiliriz ? Son olarak bunu da alabilirsem bu geceye kadar yarın ki sınavda hiç değilse yardımı dokunur bb-aa gelirse de bir çay ısmarlarım
    Üstad ilk sorundan başlayalım, bu sistemde hem yayında olsun hem yedekte bir olay olmaz, aynı veriyi iki kere eklemiş olman gerekiyor, zaten şu yapıda aynı veri hem yedekte hem yayında, yani veritabanında duruyor. Diyelim ki admin panelinde hem yedekte olanları hemde yayında olanları listelemek istiyorsunuz.

    <?php 
     $tumIcerik = mysql_query("select * from tabloadi");
    ?>
    Bu şekilde hepsini listeleyebilirsiniz, bir ileri daha götürelim, hangisinin yedekte hangisinin yayında olduğunuzu görmek için ise;
    <?php 
     $tumIcerik = mysql_query("select * from tabloadi");
     while($tumGoster = mysql_fetch_array($tumIcerik))
    {
       echo $tumGoster["baslik"];
      if($tumGoster["yedek"] == 0){
        echo "Yayında";
      }else{
       echo "Yedekte";
       }
    }
    ?>
    Yukarı da ki kodla da, tablodan tüm içerikleri çektik, başlıkları yazdırdık yanına da yayında mı yedekte mi olduğunu yazdırdık.

    Gelelim 2. soruya Eğer ki başka tabloya aktarma yapma yöntemi ile yapılmak istenir ise, öncelikle "yedek" adı altında bir tablo açıyoruz, "yedek" tablomuzun sütunları "içerik" tablomuzun sütunları ile birebir aynı olmak zorunda ki, orada ki içeriği aynı şekilde buraya aktarabilelim. Tablomuzu açtıktan sonra, silme işlemini yaptığımız sayfa da şöyle bir düzenleme yapmamız gerekiyor.

    Anlaşılması için adım adım gösteriyorum.

    1. Adım Öncelikle silinmesi istenen içeriği buluyoruz ve bütün değerlerini diğer tabloya aktarmak için çekiyoruz.
    <?php 
       $icerikID       = $_GET["id"];
       $icerikBul      = mysql_query("select * from tabloadi where id='$icerikID'");
       $icerikGoster = mysql_fetch_array($icerikBul);
    ?>
    Bu şekilde tüm içeriğimizi aldık, şimdi içeriğimiz de bulunan tüm değerleri yeni açtığımız "yedek" tablosuna ekliyoruz.
    Not: içerik tablosunda baslik ve icerik alanlarının olduğunu varsayıyorum.
    <?php 
      $baslik = $icerikGoster["baslik"];
      $icerik = $icerikGoster["icerik"];
      $yedekEkle = mysql_query("insert into yedek (baslik,icerik) VALUES ('$baslik','$icerik')");
    ?>
    Artık silmek istediğimiz içerik "yedek" tablomuza eklenmiş oldu. Şimdi bu içeriği "içerik" tablosundan silelim ve işlemleri tamamlayalım.
    <?php 
         $icerikSil = mysql_query("delete from tabloadi where id='$icerikID'");
    ?>
    İşlemlerimiz tamamlanmıştır.

    2. Sorunun tüm kodlarının birleşimi şu şekilde oluyor ;
    <?php
      /** İçerik Bulunuyor **/
       $icerikID       = $_GET["id"];
       $icerikBul      = mysql_query("select * from tabloadi where id='$icerikID'");
       $icerikGoster = mysql_fetch_array($icerikBul);
       /** Yedek tablosuna ekleniyor ***/
      $baslik = $icerikGoster["baslik"];
      $icerik = $icerikGoster["icerik"];
      $yedekEkle = mysql_query("insert into yedek (baslik,icerik) VALUES ('$baslik','$icerik')");
      /** İçerik gerçek tablomuzdan siliniyor **/
      $icerikSil = mysql_query("delete from tabloadi where id='$icerikID'");
    ?>
    Şimdiden başarılar, gözümden kaçmış yazım hataları olabilir, affola
  • 23-06-2013, 22:49:23
    #8
    NepenTheS adlı üyeden alıntı: mesajı görüntüle
    Üstad ilk sorundan başlayalım, bu sistemde hem yayında olsun hem yedekte bir olay olmaz, aynı veriyi iki kere eklemiş olman gerekiyor, zaten şu yapıda aynı veri hem yedekte hem yayında, yani veritabanında duruyor. Diyelim ki admin panelinde hem yedekte olanları hemde yayında olanları listelemek istiyorsunuz.

    <?php 
     $tumIcerik = mysql_query("select * from tabloadi");
    ?>
    Bu şekilde hepsini listeleyebilirsiniz, bir ileri daha götürelim, hangisinin yedekte hangisinin yayında olduğunuzu görmek için ise;
    <?php 
     $tumIcerik = mysql_query("select * from tabloadi");
     while($tumGoster = mysql_fetch_array($tumIcerik))
    {
       echo $tumGoster["baslik"];
      if($tumIcerik["yedek"] == 0){
        echo "Yayında";
      }else{
       echo "Yedekte";
       }
    }
    ?>
    Yukarı da ki kodla da, tablodan tüm içerikleri çektik, başlıkları yazdırdık yanına da yayında mı yedekte mi olduğunu yazdırdık.

    Gelelim 2. soruya Eğer ki başka tabloya aktarma yapma yöntemi ile yapılmak istenir ise, öncelikle "yedek" adı altında bir tablo açıyoruz, "yedek" tablomuzun sütunları "içerik" tablomuzun sütunları ile birebir aynı olmak zorunda ki, orada ki içeriği aynı şekilde buraya aktarabilelim. Tablomuzu açtıktan sonra, silme işlemini yaptığımız sayfa da şöyle bir düzenleme yapmamız gerekiyor.

    Anlaşılması için adım adım gösteriyorum.

    1. Adım Öncelikle silinmesi istenen içeriği buluyoruz ve bütün değerlerini diğer tabloya aktarmak için çekiyoruz.
    <?php 
       $icerikID       = $_GET["id"];
       $icerikBul      = mysql_query("select * from tabloadi where id='$icerikID'");
       $icerikGoster = mysql_fetch_array($icerikBul);
    ?>
    Bu şekilde tüm içeriğimizi aldık, şimdi içeriğimiz de bulunan tüm değerleri yeni açtığımız "yedek" tablosuna ekliyoruz.
    Not: içerik tablosunda baslik ve icerik alanlarının olduğunu varsayıyorum.
    <?php 
      $baslik = $icerikGoster["baslik"];
      $icerik = $icerikGoster["icerik"];
      $yedekEkle = mysql_query("insert into yedek (baslik,icerik) VALUES ('$baslik','$icerik')");
    ?>
    Artık silmek istediğimiz içerik "yedek" tablomuza eklenmiş oldu. Şimdi bu içeriği "içerik" tablosundan silelim ve işlemleri tamamlayalım.
    <?php 
         $icerikSil = mysql_query("delete from tabloadi where id='$icerikID'");
    ?>
    İşlemlerimiz tamamlanmıştır.

    2. Sorunun tüm kodlarının birleşimi şu şekilde oluyor ;
    <?php
      /** İçerik Bulunuyor **/
       $icerikID       = $_GET["id"];
       $icerikBul      = mysql_query("select * from tabloadi where id='$icerikID'");
       $icerikGoster = mysql_fetch_array($icerikBul);
       /** Yedek tablosuna ekleniyor ***/
      $baslik = $icerikGoster["baslik"];
      $icerik = $icerikGoster["icerik"];
      $yedekEkle = mysql_query("insert into yedek (baslik,icerik) VALUES ('$baslik','$icerik')");
      /** İçerik gerçek tablomuzdan siliniyor **/
      $icerikSil = mysql_query("delete from tabloadi where id='$icerikID'");
    ?>
    Şimdiden başarılar, gözümden kaçmış yazım hataları olabilir, affola
    hepsini bir okuyuşta anladım. Gerçekten on numara. Sitemde de paylaşıp burayı linklerim cidden teşekkürler. Mantığı anladım asıl önemli olan o oldu benim için. Google dan buraya gelecek arkadaşlara da selam olsun tekrardan teşekkürler.
  • 24-06-2013, 00:48:17
    #9
    Konuya biraz geç kaldım sanırım @NepenTheS size gerekli bilgiyi detaylıca aktarmış inş diğer sorularınızda cevaplamak üzere iyi akşamlar dilerim.Saygılarımla