• 30-09-2013, 19:09:44
    #1
    Arkadaşlar alttaki kodla 15 metini random olarak gösterebiliyorum ama sorunum şu bu veriler tekrara düşebiliyor yani 15 ayrı metin var sayfayı her yenilediğimde ayrı bir metin gösteriyor ama örneğin 8 i 2 defa verebiliyor ben istiyorum ki en az 10 taneyi tamamen ayrı metinleri göstersin yani 8 i gösterdimi birdaha en az 10 farklı metinden sonra tekrar ona gelsin umarım anlatabilmişimdir yardımcı olursanız çok hora geçer aynı zamanda metinlerin içine resimde ekliycem bu şekilde editleyip kodu ulaştırabilirseniz sevinirim

    <?php $rasgele = mt_rand(0,10);
    $metinler = array(
    0 => "metin1",
    1 => "metin2",
    2 => "metin3",
    3 => "metin4",
    4 => "metin5",
    5 => "metin6",
    6 => "metin7",
    7 => "metin8",
    8 => "metin9",
    9 => "metin10",
    10 => "metin11",
    11 => "metin12",
    12 => "metin13",
    13 => "metin14",
    14 => "metin15",
    );
    echo $metinler[$rasgele]; ?>
  • 30-09-2013, 21:55:42
    #2
    Özel mesaj attım.
  • 01-10-2013, 11:48:25
    #3
    Üyeliği durduruldu
    Hocam verileri bir diziye atın daha sonra atanan değer dizinin içinde varmı yokmu kontrol ettirin.
    in_array() fonksiyonu ile yapabilirsiniz
  • 01-10-2013, 14:38:49
    #4
    <script>var mazaretler = [
    'Saçımı yıkamam gerek.',
    'Halam kasabada.',
    'Halam çok hasta.',
    'Patronum ondan haber beklememi söyledi.',
    'Klimamı tamir etsin diye bir tamirci çağırdım.',
    'Hava alanına bir arkadaşımı bırakmak zorundayım.',
    'Geçen hafta bir kaza geçirdim ve trafiğe çıkmaya hazır değilim.',
    'Daha önce orada yedim ve gıda zehirlenmesi geçirdim.',
    'Kafam çok karışık. Daha sonra açıklarım.',
    'Babam bir polis.',
    'Ben bu şey için gönüllü değilim.',
    'Hava biraz kötü galiba.',
    'Daha önce ayağımı kesmiştim. Ayakkabı giyince içi kan ile doluyor.',
    'Annem kuduz oldu.',
    'Ben zaten sarhoşum. Siz keyfinize bakın.',
    'Bu gece YouTube gecesi.',
    'eBay\'da takip ettiğim bir açık arttırma var.'
    ];

    var bttn = document.getElementById('yenile');
    var mazeret = document.getElementById('mazeret');
    var rasgele = 0;

    var mazeretbul = function(){
    rasgele = Math.floor(Math.random()*mazaretler.length);
    mazeret.innerHTML = mazaretler[rasgele];
    };

    mazeretbul();

    bttn.addEventListener('click',function(e){
    e.preventDefault();
    mazeretbul();
    });</script>

    şöyle bir kod buldum ama bir defa çıkan yazının minimum 10 tekrarda çıkmamasını nasıl sağlarım tetrarı önlemem lazım yani çalışan demo burda

    http://www.adobewordpress.com/wp-con...s/test/37.html

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 14:38:49 -->-> Daha önceki mesaj 14:38:02 --

    WebTwins adlı üyeden alıntı: mesajı görüntüle
    Hocam verileri bir diziye atın daha sonra atanan değer dizinin içinde varmı yokmu kontrol ettirin.
    in_array() fonksiyonu ile yapabilirsiniz
  • 01-10-2013, 18:14:50
    #5
    Yaptırmadıysan skype pm at ücretsiz hallederim hocam.
  • 01-10-2013, 19:35:08
    #6
    basit bir mesele olduğu için ücretsiz olarak kod verdim.

    //session başlat, sayfanın en tepesinde olmalı ve utf-8 bomsuz olarak kaydedilmeli.
    session_start()
    
    if(!isset($_SESSION['metinler'])){
    //metinletrimizi belirliyoruz
    	$metinler = array( 
    	0 => "metin1", 
    	1 => "metin2", 
    	2 => "metin3", 
    	3 => "metin4", 
    	4 => "metin5", 
    	5 => "metin6", 
    	6 => "metin7", 
    	7 => "metin8", 
    	8 => "metin9", 
    	9 => "metin10", 
    	10 => "metin11", 
    	11 => "metin12", 
    	12 => "metin13", 
    	13 => "metin14", 
    	14 => "metin15", 
    	); 
    	
    	//metinlerimizi sessiona atıyoruz.
    	$_SESSION['metinler'] = $metinler;
    	unset($metinler);
    }
    
    //eğer metinler sessionındaki eleman sayısı 0 dan fazla ise rastgele bir eleman göster ve elemanı sil ki yinelenmesin, 
    //yok eleman sayısı sıfırdan büyük değilse yani tüm metinler gösterildiyse kontrol sessionı sil ki yeniden session oluşturulup baştan başlasın.
    	if(count($_SESSION['metinler']) > 0){
    		$rasgele = mt_rand(0,(count($_SESSION['metinler'])-1)); 
    		echo $_SESSION['metinler'][$rasgele];
    		unset($_SESSION['metinler'][$rasgele]);
                    sort($_SESSION['metinler']);
    	}else{
    		unset($_SESSION['metinler']);
    	}
  • 01-10-2013, 20:40:16
    #7
    <?PHP
    function unique_text($array, $limit = 3 ) {
    	$array = array_unique($array);
    	$plus = 1;
    	$text = array();
    	foreach( $array as $value ) {
    		$text[] = $value;
    		if( $plus == $limit )
    			break;
    					
    		$plus++;
    	}
    	$text = implode(',', $text);
    	return $text;
    }
    ?>
    Kullanım

    $array = array('test 1', 'test 2', 'test 3', 'test 4', 'test 5', 'test 2', 'test 1');
    
    echo unique_text($array, 5);
    /* Çıktı : test 1,test 2,test 3,test 4,test 5 */
    İlk değer tekrar kayıtları sileceğin dizi ikincisi ise misal tekrar kayıtları hesaba katarak 5 fazla değer döndürdün ama bunların hepside benzersiz olursa fazla olanları budamak için limit
  • 02-10-2013, 01:49:22
    #8
    $metinler = array(
    	 0 => "metin1",
    	 1 => "metin2",
    	 2 => "metin3",
    	 3 => "metin4",
    	 4 => "metin5",
    	 5 => "metin6",
    	 6 => "metin7",
    	 7 => "metin8",
    	 8 => "metin9",
    	 9 => "metin10",
    	10 => "metin11",
    	11 => "metin12",
    	12 => "metin13",
    	13 => "metin14",
    	14 => "metin15",
    ); 
    
    //diziyi rastgele olarak karıştıralım..
    shuffle($metinler); 
    
    //karışan diziyi yazdıralım..
    print_r($metinler);
    sonuç:
    Array
    (
        [0] => metin7
        [1] => metin12
        [2] => metin15
        [3] => metin9
        [4] => metin14
        [5] => metin1
        [6] => metin5
        [7] => metin3
        [8] => metin6
        [9] => metin8
        [10] => metin13
        [11] => metin4
        [12] => metin10
        [13] => metin2
        [14] => metin11
    )
    daha sonra bir sayaç belirleyip her seferinde 1 arttırarak ekrana yazdırılabilir.
    ör. 10 tane yazdıralım:
    for ($i=0; $i<10; $i++) {
        echo $metinler[$i],'<br />';
    }
    mümkün olduğu kadar php'nin kendi fonksiyonlarını kullanmanızı tavsiye ederim.
    işlemler daha hızlı gerçekleşir ve az kaynak tüketmiş olursunuz.