• 21-01-2010, 14:44:11
    #1
    Merhaba alttaki kod ile tekrar eden veriyi ekletmiyorum.
    Soruma gelecek olursak tekrar eden bir veri varsa veri tabanına eklesin ama sonuna sayı eklesin. Nasıl yaparım?

    Örnek : sql da mehmet ekli olsun veriyi eklerken aynı veriyi tesbit edince mehmet in sonuna mehmet1 vs.. AMa sql da mehmet 1 de varsa arttırsın mehmet2 yapsın

    function rows($query)                { $sonuc = @mysql_num_rows($query);return $sonuc;}
    
     $varmi=mysql_query("select oyunadi from oyunlar where oyunadi='$yoyun'");
    $varm=rows($varmi);
    if($varm) { echo "<script language='javascript'>alert('.::Zaten Ekli::.!');window.location = 'oyunekle.php';</script>"; } else {
    $Sorgum = "Insert Into oyunlar Values ('','$yoyun','$ykatid','$seola','$yres','$yadres','$tag','$ydesc','$yswf','0','$ytarih','0','0')";
    $Ekle = @mysql_query($Sorgum);
    Echo ("<script language='javascript'>alert('oyun Eklendi!');window.location = 'oyunekle.php';</script>");
    } }
  • 21-01-2010, 14:47:40
    #2
    Kod olarak değil mantık olarak anlatmam gerekirse :

    Gelen veriyi veritabanından COUNT ile sayarsınız. Sonuç 1 den büyükse sonuna toplam sayıyı ekleyip yazarsınız.

    Veritabanında a 1 tane var diyelim. saydığınızda sonuç 1 olarak dönecek o zaman kaydı a1 ($a . $count vb.) olaracak kaydedeceksiniz.
  • 21-01-2010, 14:53:45
    #3
    mantıklıymış. Bana sana zahmet örnek count kodu yazabilirmisin
    $ara = "mehmet"
    select ile oyunlar tablosundanki isim sutununda arasın. $ara ya eşitmi diye de kontrol etsin.
  • 21-01-2010, 17:32:26
    #4
    bak ben sana yazayım.

    $oyunadi = "mehmet";
    
    $sorgu = mysql_query("SELECT oyunadi FROM oyunlar where oyunadi = '$oyunadi'");
    $sonuc = mysql_num_rows($sorgu);
    
    if($sonuc):
    
    /*
    Oyun adi sistemde zaten olduğu için mysql_num_rowstan dönen sonuc
    Oyun Adına ekleniyor
    Mesela daha önceden 'mehmet' diye bir oyun eklenmiş sonuc 1 olarak dönecektir
    Buna göre oyun adı mehmet1 olacaktır.
    */
    
    $oyunadi = $oyunadi.$sonuc;
    
    mysql_unbuffered_query("INSERT INTO oyunlar VALUES('$oyunadi')");
    
    else:
    
    /*
    Oyun adı sistemde yok gönül rahatlığı ile ekleyebilirsin
    */
    mysql_unbuffered_query("INSERT INTO oyunlar VALUES ('$oyunadi')");
    
    endif;
    Mantık bu sen kendine göre düzenlersin anlamadığın bi yer olursa tekrar yaz konuyu takip edeceğim.
  • 21-01-2010, 17:41:17
    #5
    marlonbora saol da mehmet ekli ise mehmet1 olucak diyorsun. Peki 3. defa ve fazlası için aynı veri eklenirse mehmet varsa sonra mehmet1 i kontrol edip oda varsa mehmet2 yapıcak mı?
  • 21-01-2010, 18:13:10
    #6
    bi sn.
  • 22-01-2010, 13:52:45
    #7
    Biraz kafa patlattım ama bu şekilde bu sorunu aşabilirsin.

    <?php
    $oyunadi = "aliş";
    
    for($i = 1; ;$i++):
    	 
    	
    	if($i == 1):
    	
    		/*
    		 * Eğer ilk döngü ise direk oyun adı sorguya sokuluyor.
    		 */
    	
    		$oyunadi2 = $oyunadi;
    	
    		$sql   = "SELECT oyun_adi FROM oyunlar WHERE oyun_adi = '$oyunadi2'";
    		
    	else:
    	
    		/*
    		 * Eğer döngü ilk değilse oyunadına 1,2,.. gibi ekler getiriliyor.
    		 * Sistemde olmayan oyun adını bulana kadar döngü sürecek.
    		 */
    	
    		$oyunadi2 = $oyunadi.$i;
    	
    		$sql   = "SELECT oyun_adi FROM oyunlar WHERE oyun_adi = '$oyunadi2'";
    		
    	endif;
    	
    	$sorgu = mysql_query($sql);
    	$sonuc = @mysql_num_rows($sorgu);
    	
    	/*
    	 * Eğer sistemde olmayan oyun adı bulunduysa döngü sonlandırılıyor.
    	 */
    	
    	if(!$sonuc):
    	
    		/*
    		 * Burada oyununu gönül rahatlığı ile veritabanına işleyebilirsiniz.
    		 */
    	
    		echo 'Sistemde olmayan oyun adı : '.$oyunadi2;
    		break;
    	endif;
    	
    	
    endfor;
    		
    
    ?>
    Yinede kafana takılan birşey olursa özel mesaj gönder konuyu takip ederim.
  • 22-01-2010, 14:19:16
    #8
    teşekkürler arkadaşım...