İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Unique hakkında bir sorum olucak

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

CoLd!uX

0
İyinet Üyesi
Katılım
9 Mayıs 2008
Mesajlar
509
Reaction score
1
mrblar ziyaretçilerimin paylaştığı bir blog sitesindeki içerik eklerken bir den fazla aynı başlıktan ekleme yapılıyor mysql den " Unique " benzersiz indexlemeyi yapıyorum sorun aynı yine ekleme yapıyor bu konu hakkında ufak bir sorum olucak..
aşağıdaki kodu kullanmaktayım googleden baya bir araştırma yaptım fakat bir türlü çözüm yolu bulamadım bu konu hakkında nasıl bir düzenmele yapabilirim..

PHP:
<?php
include("vt.php");
$baslik=$_POST["textfield"];
$kategori=$_POST["kategori"];
$makale=$_POST["makale"];
$ekle=mysql_query("insert into yazilar(baslik,yazi_metni,katid)value('$baslik','$makale','$kategori')");
if($ekle){
echo "Eklenmiştir";
}else{
echo "Eklenemedi";
}
?>

ayrıca birde arkadaşlar bu ' tırnak işareti içeren mesajlarda ekleme yapmıyor tahmin ediyorum yukaridaki kodlamadan kaynaklanıyordur

iyi çalışmalar..
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Hataların;

- Genelde $_POST ve $_GET ile gelen verinin içerisinde değişken yoksa ' tek tırnak işaretini kullanmalısın.Tek tırnak gelen verinin içerisinde sadece string değer arar ve daha hızlıdır. Çift tırnak ise önce değişken varmı diye bakar daha sonra string değer olarak karşılaştırır.

- Ekle kısmındaki sorguda value yazmışsın bu değer values olacak.

- Ekleme yaparken '$baslik' şeklinde tek tırnak içerisinde değişken kullanırsan söylediğin sorun ortaya çıkar.Yukarıda söylediğim gibi tek tırnak tüm değişken içeriğini algılayamaz. Bu şekilde php kodları yazan kişilerin siteleri bu yüzden heklenir. Mysql sorgu, ekleme, silme, update işlemi yaparken '" . $degisken . "' seklinde yazmak her zaman iyidir.

Kodlarını aşağıdaki şekilde düzenleyebilirsin + kontrol kısmını başlık yerine içerik olarak veya kendine göre geliştirip deneyebilirsin.

PHP:
<?php

include("vt.php"); 
$baslik=$_POST['textfield']; 
$kategori=$_POST['kategori']; 
$makale=$_POST['makale']; 

// kontrol sorgusu ile $_POST 'dan gelen başlığı veritabanındaki başlıklarla karşılaştırıyoruz.

$kontrol = mysql_query("SELECT * FROM yazilar WHERE baslik = '" . $baslik . "' ");

// mysql_num_rows ile true false karşılaştırması yapıyoruz. 0(false) ise aynı başlık bulunamadı, 1 (true) ise bulundu demektir.

if(mysql_num_rows($kontrol) == 0) {

$ekle=mysql_query("INSERT INTO yazilar(baslik,yazi_metni,katid) VALUES ('" . $baslik . "','" . $makale . "','" . $kategori . "')"); 

echo "Yazı Eklenmiştir"; 

} else { 

echo "Aynı başlıktan başka bir kayıt bulundu.Yazı Eklenemedi"; 
} 

?>
 

CoLd!uX

0
İyinet Üyesi
Katılım
9 Mayıs 2008
Mesajlar
509
Reaction score
1
sorun çözüldü ilgi ve alakanız için teşekkürler..
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst