• 06-09-2012, 16:49:17
    #1
    Üyeliği durduruldu
    Arkadaşlar merhaba şöyle bir sorum var ?

    1 tablom da değerler var aynen şöyle.

    id adi

    1 kuzey
    2 güney
    3 dogu
    4 batı

    Başka bir tablom da da şöyle bir yapı var.
    Bu ilk tabloma ait id'leri tek bir field'da tutuyorum.
    1,4,2,5,34,6,7 gibi.

    Ben yazdırırken istiyorum ki tablom da olanları kırmızı renkle yazsın diğerlerini normal renkle.

    Yani ben döngü yaptığımda ya 2 kere dönüyor foreach ve while yapıyorum yada bir değer basıyor ekrana.

    Kod ;
    <?php
    $sor = mysql_query("select * from ozellikler");
    $secim = "1,2,4,5";
    $parcala = explode(",",$secim);
    		
    	while($yaz = mysql_fetch_array($sor)) {
    	     for ($i=0; $i<count($parcala); $i++) {
    	          if ($yaz["id"] == $parcala[$i]) {
    			echo '<li style="color:red;">'.$yaz["adi"].'</li>';
    		}else{
    		echo '<li style="color:green;">'.$yaz["adi"].'</li>';
    				}
    			}
    		}
    ?>
    -Bu Şekilde yaptığımda istediğim sonucu alıyorum ancak her değeri 3 kere yazıyor.

    Umarım Anlatabilmişimdir.
    Teşekkürler.
  • 06-09-2012, 16:59:12
    #2
    Bu sql Kodu Belki işini Görür
    select *,if(tes1.id=test2.id,'ayni','degil') as durum from tes1,test2 group by tes1.id
  • 06-09-2012, 17:00:24
    #3
    Üyeliği durduruldu
    ahmetweb adlı üyeden alıntı: mesajı görüntüle
    Bu sql Kodu Belki işini Görür
    select *,if(tes1.id=test2.id,'ayni','degil') as durum from tes1,test2 group by tes1.id
    Teşekkürler hocam da biraz daha açabilirsek kodu o kadar bilmiyorum da.
  • 06-09-2012, 17:09:35
    #4
    <?php
    $dizi = array();
    $ilkq =  mysql_query("SELECT * FROM ilktablo ORDER BY id ASC");
    while ($ilk = mysql_fetch_array($ilkq, MYSQL_ASSOC))
    {
    	$dizi[]=$ilk["id"];
    }
    $ikinci = mysql_fetch_array(mysql_query("SELECT * FROM ikincitablo WHERE id='1'"), MYSQL_ASSOC);
    $yaz1 = explode(",", $ikinci["degerismi"]);
    for($i=0;isset($yaz1[$i]);$i++)
    {
    	if(in_array($yaz1[$i], $dizi))
    	{
    		echo '<font color="red">'.$yaz1[$i].'</font>';
    	}
    	else
    	{
    		echo $yaz1[$i];
    	}
    	if (isset($yaz1[$i+1]))
    	{
    		echo ',';
    	}
    }
    ?>
  • 06-09-2012, 17:09:36
    #5
    Az Önce Yazdıgım kod Yanlış Olmuş Deneme Şansım Yeni Oldu Şöyle Yapabilirisin
    $sql=mysql_query("select *,if(tes1.id=test2.id,'ayni','degil') as durum from tes1 left join test2 on tes1.id=test2.id");
    while($liste=mysql_fetch_array($sql))
    {
    $kod=($liste['durum']=="ayni")?'color:red':'';

    }
  • 06-09-2012, 17:18:31
    #6
    Üyeliği durduruldu
    2 Kodu da denedim ancak kendime göre tam uyarlayamadım.
    @ZorbAA hocam teşekkürler ancak ben şu şekilde $secim = "1,2,3"; değerleri gönderiyorum diğeriyle eşleştiriyorum var ise kırmızı yazdırıyorum.

    3'er tane çıkıyor sadece onu da anladığım kadarıyla in_array ile azaltıyoruz da benim kodun üzerinden zahmet olmazsa bir edit yapabilir miyiz ?

    @ahmetweb hocam sizin kodu ekledim ancak bir sonuç alamadım ?

    Teşekkürler.
  • 06-09-2012, 17:25:45
    #7
    Ben ilk kodları yazarken konudaki kodlar mevcut değildi o yüzden kafama göre yazmıştım örnek olarak
    Şunlar nasıl olur?
    <?php
    $secim = "1,2,4,5";
    $dizi = explode(",",$secim);
    $ikinciq = mysql_query("SELECT * FROM ikincitablo ORDER BY id ASC");
    while ($ikinci = mysql_fetch_array($ikinciq, MYSQL_ASSOC)){
    $yaz1 = explode(",", $ikinci["degerismi"]);
    for($i=0;isset($yaz1[$i]);$i++)
    {
    	if(in_array($yaz1[$i], $dizi))
    	{
    		echo '<font color="red">'.$yaz1[$i].'</font>';
    	}
    	else
    	{
    		echo $yaz1[$i];
    	}
    	if (isset($yaz1[$i+1]))
    	{
    		echo ',';
    	}
    }
    }
    ?>
  • 06-09-2012, 17:34:21
    #8
    Üyeliği durduruldu
    ZorbAA adlı üyeden alıntı: mesajı görüntüle
    Ben ilk kodları yazarken konudaki kodlar mevcut değildi o yüzden kafama göre yazmıştım örnek olarak
    Şunlar nasıl olur?
    <?php
    $secim = "1,2,4,5";
    $dizi = explode(",",$secim);
    $ikinciq = mysql_query("SELECT * FROM ikincitablo ORDER BY id ASC");
    while ($ikinci = mysql_fetch_array($ikinciq, MYSQL_ASSOC)){
    $yaz1 = explode(",", $ikinci["degerismi"]);
    for($i=0;isset($yaz1[$i]);$i++)
    {
    	if(in_array($yaz1[$i], $dizi))
    	{
    		echo '<font color="red">'.$yaz1[$i].'</font>';
    	}
    	else
    	{
    		echo $yaz1[$i];
    	}
    	if (isset($yaz1[$i+1]))
    	{
    		echo ',';
    	}
    }
    }
    ?>
    Çok çok teşekkürler kendi kod bloğuma göre uyarladım çalışıyor
  • 06-09-2012, 17:39:10
    #9
    Rica ederim Aslında verdiğim iki kod arasında pek fark yok. İlk verdiğim kod $secim değişkeninin içeriğini veritabanındaki bir tablodan kendisi çekiyor ve karşılaştırma yapıyor. İkinci kodda ise $secim adında bir değişken içerisinde manuel olarak tanımlanmış değerleri karşılaştırıp kontrol ediyor, tek fark bu