Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

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
Onaylı Üye
Üye
Katılım
9 Mayıs 2008
Mesajlar
509
Açılan Konu
127
Tepki puanı
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
Onaylı Üye
Üye
Katılım
26 Mart 2005
Mesajlar
922
Açılan Konu
52
Tepki puanı
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
Onaylı Üye
Üye
Katılım
9 Mayıs 2008
Mesajlar
509
Açılan Konu
127
Tepki puanı
1
sorun çözüldü ilgi ve alakanız için teşekkürler..
 

Bolu Beyi

0
Onaylı Üye
Üye
Katılım
7 Nisan 2010
Mesajlar
2,895
Açılan Konu
114
Tepki puanı
36
Sorun çözüldüğüne göre konu kapatılmıştır
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst