• 30-10-2017, 01:54:49
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar.
    Ben PHP'de devamlı düzenleme yapmaktan bıktım artık. Şöyle bir şey mümkün olur mu?
    Diyelim iki adet input var
    <input type="text" name="baslik" value=""/>
    <input type="text" name="icerik" value=""/>
    Normaldu bu inputlardan gelen postu şöyle kaydediyorum:
    include("baglanti.php");
    $baslik= $_POST['baslik'];
    $icerik= $_POST['icerik'];
    $kaydet = mysql_query("insert into kullanicilar (id, baslik, icerik) values (Null, '$baslik', '$icerik')");
     
     if($kaydet){
          header(sprintf("Location: " .$_SERVER['HTTP_REFERER']));
     }
     else{
         echo "İşlem başarısız..";
         }
    Ama 40'a yakın sayfa yaıznca bunları değiştirmekten gına geliyor artık. Diyorum ki form'dan gelen postları otomatik algılasa mesela inputlardaki name'lere göre de sutunlarına gönderse? PHP array biraz araştırdım ama yapamadım.
    Mümkünmü böyle şey hem kayıt hem düzenleme'de?
    Teşekkürler
  • 30-10-2017, 02:12:07
    #2
    Üyeliği durduruldu
    if($baslik==""){echo"Lütfen formu kontrol edin.";}else{
    if($icerik==""){echo"Lütfen formu kontrol edin";}else{
     
    mysql_query("insert into kullanicilar (baslik, icerik) values ( '$baslik', '$icerik')");
    };
    };
    id yazmana gerek yok veritabanında id kolonuna auto bilmem ne var chechbox mı ne var onu aktif et otomatik değer verir
    Sorunu dogru anladıysam böle yap
  • 30-10-2017, 02:18:41
    #3
    Üyeliği durduruldu
    İstediğin bu sanırım.

    function ekle($table, $data) {
            $q = "INSERT INTO `" .  $table . "` ";
            $v = '';
            $n = '';
            foreach ($data as $key => $val) {
                $n.="`$key`, ";
                if (strtolower($val) == 'null')
                    $v.="NULL, ";
                elseif (strtolower($val) == 'now()')
                    $v.="NOW(), ";
                else
                    $v.= "'" . $val. "', ";
            }
            $q .= "(" . rtrim($n, ', ') . ") VALUES (" . rtrim($v, ', ') . ");";
            if (mysql_query($q)) {
                return true;
            } else
                return false;
        }
    if(ekle("tabloadi",$_POST)){
    header(sprintf("Location: " .$_SERVER['HTTP_REFERER']));
    }else{
    echo "İşlem başarısız..";
    }
  • 30-10-2017, 02:23:16
    #4
    Strower adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar.
    Ben PHP'de devamlı düzenleme yapmaktan bıktım artık. Şöyle bir şey mümkün olur mu?
    Diyelim iki adet input var
    <input type="text" name="baslik" value=""/> <input type="text" name="icerik" value=""/>
    Normaldu bu inputlardan gelen postu şöyle kaydediyorum:
    include("baglanti.php"); $baslik= $_POST['baslik']; $icerik= $_POST['icerik']; $kaydet = mysql_query("insert into kullanicilar (id, baslik, icerik) values (Null, '$baslik', '$icerik')"); if($kaydet){ header(sprintf("Location: " .$_SERVER['HTTP_REFERER'])); } else{ echo "İşlem başarısız.."; }
    Ama 40'a yakın sayfa yaıznca bunları değiştirmekten gına geliyor artık. Diyorum ki form'dan gelen postları otomatik algılasa mesela inputlardaki name'lere göre de sutunlarına gönderse? PHP array biraz araştırdım ama yapamadım.
    Mümkünmü böyle şey hem kayıt hem düzenleme'de?
    Teşekkürler
    Açıklamasınıda yazdım acelece bu şekilde bişe yazdım geliştirebilirsin ama uyarılara dikkat et ve verileri süzmeyi unutma.
    Önerim öncelikle print_r($_POST) ile hangi veriler geliyor kontrol etmendir.

    <?php
        
        /*
        
        İstemediğin veriler varsa unset etmelisin yoksa hata alırsın
            Örnek olarak; unset($_POST['gereksiz']);
        Veya eklemek istediğin varsa post gelen veri dışında onuda oluşturmalısın
            Örnek olarak; $_POST['ekverikey'] = 'ekverideğer'; 
            
        */
        
        $keys = "(";
        $values =
        foreach($_POST as $key=>$value){
            $keys .= "´".$key."´,";
            $values .= "'".$value."',";
        }
        $nkey = trim($keys, ',').")";
        $nvalue = trim($values, ',').")";
        
        $kaydet = mysql_query("insert into kullanicilar ".$nkey." values ".$nvalue);
        
    ?>
  • 30-10-2017, 02:29:22
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    PDO hazır veritabanı sınıflarını kullan, daha hızlı ve hatasız yapmanı sağlar.
  • 30-10-2017, 03:17:08
    #6
    Üyeliği durduruldu
    CoLLeR adlı üyeden alıntı: mesajı görüntüle
    Açıklamasınıda yazdım acelece bu şekilde bişe yazdım geliştirebilirsin ama uyarılara dikkat et ve verileri süzmeyi unutma.
    Önerim öncelikle print_r($_POST) ile hangi veriler geliyor kontrol etmendir.

    <?php /* İstemediğin veriler varsa unset etmelisin yoksa hata alırsın Örnek olarak; unset($_POST['gereksiz']); Veya eklemek istediğin varsa post gelen veri dışında onuda oluşturmalısın Örnek olarak; $_POST['ekverikey'] = 'ekverideğer'; */ $keys = "("; $values = foreach($_POST as $key=>$value){ $keys .= "´".$key."´,"; $values .= "'".$value."',"; } $nkey = trim($keys, ',').")"; $nvalue = trim($values, ',').")"; $kaydet = mysql_query("insert into kullanicilar ".$nkey." values ".$nvalue); ?>
    Teşekkürler hocam deneyeceğim.

    Duce adlı üyeden alıntı: mesajı görüntüle
    PDO hazır veritabanı sınıflarını kullan, daha hızlı ve hatasız yapmanı sağlar.
    PDO'ya kafam çok basmıyor üstad ya. Zaten panelleri tek kişi kullanacak.
  • 30-10-2017, 03:19:56
    #7
    Strower adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler hocam deneyeceğim.


    PDO'ya kafam çok basmıyor üstad ya. Zaten panelleri tek kişi kullanacak.
    @habade nin verdiği fonksiyonda güzel hem fonsiyon olarak vermiş.
    PDO ihmal etmemeni öneririm artık mysql bitti bitecek çok hata alırsın.
    Bu arada R10+ unutma